void PRF(undefined4 param_1,undefined4 param_2,void *param_3,size_t param_4,void *param_5,
        size_t param_6,int param_7,int param_8)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  void *local_30 [2];
  
  os_alloc_mem(0,local_30,0x400);
  if (local_30[0] == (void *)0x0) {
    if (RTDebugLevel != 0) {
      printk("!!!PRF: no memory!!!\n");
    }
  }
  else {
    memmove(local_30[0],param_3,param_4)   //possible issue identified - semgrep
    *(undefined1 *)((int)local_30[0] + param_4) = 0;
    memmove((void *)((int)local_30[0] + param_4 + 1),param_5,param_6)   //possible issue identified - semgrep
    iVar3 = param_4 + 1 + param_6   //possible issue identified - semgrep
    *(undefined1 *)((int)local_30[0] + iVar3) = 0;
    iVar2 = 0;
    while (bVar1 = iVar2 < (param_8 + 0x13) / 0x14, iVar2 = iVar2 + 1, bVar1) {
      RT_HMAC_SHA1(param_1,param_2,local_30[0],iVar3 + 1,param_7,0x14);
      param_7 = param_7 + 0x14;
      *(char *)((int)local_30[0] + iVar3) = *(char *)((int)local_30[0] + iVar3) + '\x01';
    }
    os_free_mem(0,local_30[0]);
  }
  return;
}