undefined4 * FUN_00473368(int param_1)

{
  int iVar1;
  undefined4 *puVar2;
  char *pcVar3;
  int iVar4;
  
  pcVar3 = *(char **)(param_1 + 0xc);
  if (*pcVar3 == 'T') {
    *(char **)(param_1 + 0xc) = pcVar3 + 1;
    iVar4 = 0;
    if (pcVar3[1] != '_') {
      iVar1 = FUN_004730c0();
      iVar4 = iVar1 + 1;
      if (iVar1 < 0) {
        return (undefined4 *)0x0;
      }
    }
    if (**(char **)(param_1 + 0xc) != '_') {
      return (undefined4 *)0x0;
    }
    iVar1 = *(int *)(param_1 + 0x14);
    *(char **)(param_1 + 0xc) = *(char **)(param_1 + 0xc) + 1;
    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
    if (iVar1 < *(int *)(param_1 + 0x18)) {
      puVar2 = (undefined4 *)(*(int *)(param_1 + 0x10) + iVar1 * 0xc);
      *(int *)(param_1 + 0x14) = iVar1 + 1;
      if (puVar2 != (undefined4 *)0x0) {
        *puVar2 = 5;
        puVar2[1] = iVar4;
        return puVar2;
      }
      return (undefined4 *)0x0;
    }
  }
  return (undefined4 *)0x0;
}