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;
}