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