int FUN_0040819c(uint *param_1,char *param_2)
{
int iVar1;
uint uVar2;
int iVar3;
int local_70;
int local_6c;
sysinfo local_60;
if (param_1 == (uint *)0x0) {
LAB_0040836c:
iVar3 = 0;
}
else {
iVar3 = 0;
if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {
FUN_00407b10(&local_70);
memset(param_1,0,0xe8) //possible issue identified - semgrep
for (iVar3 = 1; iVar3 <= local_6c; iVar3 = iVar3 + 1) {
iVar1 = FUN_00407ea0(param_1,iVar3,0);
if (((iVar1 == 0) && (uVar2 = *param_1, sysinfo(&local_60), (uint)local_60.uptime <= uVar2))
&& (iVar1 = strcmp((char *)(param_1 + 2),param_2), iVar1 == 0)) {
return iVar3;
}
}
iVar1 = 1;
do {
iVar3 = iVar1;
if (local_6c < iVar3) goto LAB_0040836c;
iVar1 = FUN_00407ea0(param_1,iVar3,0);
if (iVar1 != 0) break;
uVar2 = *param_1;
sysinfo(&local_60);
iVar1 = iVar3 + 1;
} while ((uint)local_60.uptime <= uVar2);
memset(param_1,0,0xe8) //possible issue identified - semgrep
sysinfo(&local_60);
*param_1 = local_60.uptime + local_70;
param_1[1] = 0xffffffff;
strncpy((char *)(param_1 + 2),param_2,0x40) //possible issue identified - semgrep
FUN_00407ea0(param_1,iVar3,1);
}
}
return iVar3;
}