undefined4 FUN_00407168(int param_1,undefined1 param_2)

{
  int iVar1;
  undefined4 uVar2;
  
  if ((param_1 == 0) ||
     ((*(int *)(param_1 + 0xc) == *(int *)(param_1 + 0x10) && (iVar1 = FUN_00406ec4(), iVar1 < 0))))
  {
    uVar2 = 0xffffffff;
  }
  else {
    iVar1 = *(int *)(param_1 + 0x10) + 1;
    *(undefined1 *)(*(int *)(param_1 + 0x14) + *(int *)(param_1 + 0x10)) = param_2;
    *(int *)(param_1 + 0x10) = iVar1;
    *(undefined1 *)(*(int *)(param_1 + 0x14) + iVar1) = 0;
    uVar2 = 0;
  }
  return uVar2;
}