
void INET_setroute(int action,char **args)

{
  undefined *puVar1;
  undefined *puVar2;
  char **ppcVar3;
  int iVar4;
  undefined *puVar5;
  undefined1 *puVar6;
  uint uVar7;
  ushort uVar11;
  undefined4 uVar8;
  short sVar12;
  int iVar9;
  undefined1 *puVar10;
  char **ppcVar13;
  char **ppcVar14;
  undefined *puVar15;
  char *pcVar16;
  char **ppcVar17;
  code *pcVar18;
  undefined *puVar19;
  char **ppcVar20;
  code *pcVar21;
  undefined8 uVar22;
  char **local_94;
  sockaddr mask;
  char rt_buf [84];
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  pcVar21 = (code *)(PTR_LAB_0012a49c + 0x64d0);
  iVar4 = *(int *)PTR___stack_chk_guard_0012b14c;
  local_94 = args;
  puVar5 = (undefined *)
           kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5e60,&local_94);
  ppcVar17 = local_94;
  if (*local_94 != (char *)0x0) goto LAB_00046ee0;
LAB_00046ed4:
  (*(code *)PTR_bb_show_usage_0012a1dc)();
LAB_00046ee0:
  (*(code *)PTR_memset_0012aebc)(rt_buf,0,0x54);
  local_94 = ppcVar17 + 1;
  pcVar16 = *ppcVar17;
  puVar6 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(pcVar16,0x2f);
  pcVar18 = (code *)PTR_INET_resolve_0012a540;
  if (puVar6 == (undefined1 *)0x0) goto LAB_00046f8c;
  uVar7 = (*(code *)PTR_xatoul_range_0012a3ec)(puVar6 + 1,0,0x20);
  rt_buf._40_4_ = ~(0xffffffffU >> (uVar7 & 0x1f));
  *puVar6 = 0;
  rt_buf[0x24] = '\0';
  rt_buf[0x25] = '\x02';
  uVar7 = (*pcVar18)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);
  if ((int)uVar7 < 0) {
    do {
      (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16);
LAB_00046f8c:
      pcVar18 = (code *)PTR_INET_resolve_0012a540;
      uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);
    } while ((int)uVar7 < 0);
    ppcVar17 = (char **)(PTR_UINT_0012a18c + 0x2bbc);
  }
  else {
    ppcVar17 = (char **)0x0;
    *puVar6 = 0x2f;
  }
  puVar1 = PTR_xatoul_0012a3a4;
  if (puVar5 != (undefined *)0x0) {
    uVar7 = (uint)puVar5 & 1;
  }
  rt_buf[0x34] = '\0';
  rt_buf[0x35] = '\x05';
  if (uVar7 != 0) {
    rt_buf[0x34] = '\0';
    rt_buf[0x35] = '\x01';
  }
  puVar19 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5df8;
  puVar5 = PTR_UINT_0012a18c + 0x4218;
  ppcVar13 = local_94;
  ppcVar3 = (char **)rt_buf._68_4_;
LAB_00046fe4:
  do {
    rt_buf._68_4_ = ppcVar3;
    if (*ppcVar13 == (char *)0x0) {
      if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {
        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;
      }
      uVar11 = rt_buf._52_2_;
      if (rt_buf._40_4_ != 0) {
        if ((rt_buf._52_2_ & 4) == 0) {
          ppcVar13 = (char **)~rt_buf._40_4_;
          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {
            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);
            ppcVar13 = ppcVar17;
          }
          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {
            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);
          }
          if (action == 1) goto LAB_0004710c;
          goto LAB_00047084;
        }
        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);
      }
      if (action == 1) goto LAB_000470fc;
LAB_00047084:
      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);
      (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);
      while (iVar4 != *(int *)puVar2) {
        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
LAB_000470fc:
        if ((uVar11 & 4) != 0) {
          rt_buf[0x28] = -1;
          rt_buf[0x29] = -1;
          rt_buf[0x2a] = -1;
          rt_buf[0x2b] = -1;
        }
LAB_0004710c:
        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);
        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);
      }
      return;
    }
    uVar7 = (*pcVar21)(puVar19,&local_94);
    uVar22 = CONCAT44(uVar7,local_94);
    if ((uVar7 & 0x20) == 0) {
      ppcVar20 = (char **)local_94[-1];
      if (uVar7 != 0x10) {
        puVar15 = (undefined *)0x12;
        if (uVar7 == 0x11) {
          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;
          iVar9 = (*pcVar18)(ppcVar20,&mask,0);
          if (iVar9 < 0) {
            puVar15 = PTR_UINT_0012a18c + 0x4038;
            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);
            goto LAB_00047208;
          }
LAB_00047380:
          rt_buf._36_2_ = mask.sa_family;
          rt_buf[0x26] = mask.sa_data[0];
          rt_buf[0x27] = mask.sa_data[1];
          rt_buf[0x28] = mask.sa_data[2];
          rt_buf[0x29] = mask.sa_data[3];
          rt_buf[0x2a] = mask.sa_data[4];
          rt_buf[0x2b] = mask.sa_data[5];
          ppcVar13 = local_94;
          ppcVar17 = ppcVar20;
          ppcVar3 = (char **)rt_buf._68_4_;
          goto LAB_00046fe4;
        }
LAB_00047208:
        puVar6 = (undefined1 *)0x13;
        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {
          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;
          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);
          rt_buf._52_2_ = rt_buf._52_2_ | 2;
          ppcVar13 = local_94;
          ppcVar3 = (char **)rt_buf._68_4_;
          if (iVar9 == 0) goto LAB_00046fe4;
          if (-1 < iVar9) {
            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);
            goto LAB_00047380;
          }
          puVar6 = PTR_UINT_0012a18c + 0x4038;
          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();
        }
        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);
        ppcVar14 = (char **)uVar22;
        if (puVar10 == puVar6) {
          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;
          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);
          ppcVar13 = local_94;
          ppcVar3 = (char **)rt_buf._68_4_;
        }
        else if (puVar10 == &DAT_00000014) {
          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;
          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);
          ppcVar13 = local_94;
          ppcVar3 = (char **)rt_buf._68_4_;
        }
        else if (puVar10 == (undefined1 *)0x15) {
          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;
          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);
          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();
          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;
          ppcVar13 = local_94;
          ppcVar3 = (char **)rt_buf._68_4_;
        }
        else {
          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;
          ppcVar13 = ppcVar14;
          ppcVar3 = ppcVar20;
          if (puVar10 != (undefined1 *)0x16) {
            ppcVar13 = ppcVar14 + 1;
            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))
            goto LAB_00046ed4;
            ppcVar3 = (char **)*ppcVar14;
          }
        }
        goto LAB_00046fe4;
      }
      sVar12 = (*(code *)puVar1)(ppcVar20);
      rt_buf._64_2_ = sVar12 + 1;
      ppcVar13 = local_94;
      ppcVar3 = (char **)rt_buf._68_4_;
      goto LAB_00046fe4;
    }
    rt_buf._52_2_ = *(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_;
    ppcVar13 = local_94;
    ppcVar3 = (char **)rt_buf._68_4_;
  } while( true );
}



void FUN_00046e48(int param_1,int *param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int *piVar3;
  undefined *puVar4;
  undefined1 *puVar5;
  uint uVar6;
  ushort uVar9;
  undefined4 uVar7;
  undefined1 *puVar8;
  int *piVar10;
  int *piVar11;
  undefined *puVar12;
  int iVar13;
  int *piVar14;
  code *pcVar15;
  undefined *puVar16;
  int *piVar17;
  code *pcVar18;
  undefined8 uVar19;
  int *local_94;
  undefined4 local_90;
  uint local_8c;
  undefined1 auStack_80 [4];
  undefined1 auStack_7c [4];
  uint local_78;
  undefined1 auStack_6c [16];
  undefined4 local_5c;
  uint local_58;
  ushort local_4c;
  short local_40;
  int *local_3c;
  undefined4 local_38;
  undefined4 local_34;
  short local_30;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  local_94 = param_2;
  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);
  piVar14 = local_94;
  if (*local_94 != 0) goto LAB_00046ee0;
LAB_00046ed4:
  (*(code *)PTR_FUN_0012a1dc)();
LAB_00046ee0:
  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);
  local_94 = piVar14 + 1;
  iVar13 = *piVar14;
  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);
  pcVar15 = (code *)PTR_FUN_0012a540;
  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;
  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);
  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));
  *puVar5 = 0;
  local_5c = CONCAT22(2,local_5c._2_2_);
  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);
  if ((int)uVar6 < 0) {
    do {
      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);
LAB_00046f8c:
      pcVar15 = (code *)PTR_FUN_0012a540;
      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);
    } while ((int)uVar6 < 0);
    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);
  }
  else {
    piVar14 = (int *)0x0;
    *puVar5 = 0x2f;
  }
  puVar1 = PTR_FUN_0012a3a4;
  if (puVar4 != (undefined *)0x0) {
    uVar6 = (uint)puVar4 & 1;
  }
  local_4c = 5;
  if (uVar6 != 0) {
    local_4c = 1;
  }
  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;
  puVar4 = PTR_UINT_0012a18c + 0x4218;
  piVar10 = local_94;
  piVar3 = local_3c;
LAB_00046fe4:
  do {
    local_3c = piVar3;
    if (*piVar10 == 0) {
      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {
        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);
      }
      uVar9 = local_4c;
      if (local_58 != 0) {
        if ((local_4c & 4) == 0) {
          piVar10 = (int *)~local_58;
          if ((-local_58 & ~local_58) != 0) {
            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);
            piVar10 = piVar14;
          }
          if (((uint)piVar10 & local_78) != 0) {
            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);
          }
          if (param_1 == 1) goto LAB_0004710c;
          goto LAB_00047084;
        }
        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);
      }
      if (param_1 == 1) goto LAB_000470fc;
LAB_00047084:
      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);
      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);
      while (local_2c != *(int *)puVar2) {
        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
LAB_000470fc:
        if ((uVar9 & 4) != 0) {
          local_58 = 0xffffffff;
        }
LAB_0004710c:
        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);
        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);
      }
      return;
    }
    uVar6 = (*pcVar18)(puVar16,&local_94);
    uVar19 = CONCAT44(uVar6,local_94);
    if ((uVar6 & 0x20) == 0) {
      piVar17 = (int *)local_94[-1];
      if (uVar6 != 0x10) {
        puVar12 = (undefined *)0x12;
        if (uVar6 == 0x11) {
          if (local_58 != 0) goto LAB_00046ed4;
          iVar13 = (*pcVar15)(piVar17,&local_90,0);
          if (iVar13 < 0) {
            puVar12 = PTR_UINT_0012a18c + 0x4038;
            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);
            goto LAB_00047208;
          }
LAB_00047380:
          local_5c = local_90;
          local_58 = local_8c;
          piVar10 = local_94;
          piVar14 = piVar17;
          piVar3 = local_3c;
          goto LAB_00046fe4;
        }
LAB_00047208:
        puVar5 = (undefined1 *)0x13;
        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {
          if ((local_4c & 2) != 0) goto LAB_00046ed4;
          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);
          local_4c = local_4c | 2;
          piVar10 = local_94;
          piVar3 = local_3c;
          if (iVar13 == 0) goto LAB_00046fe4;
          if (-1 < iVar13) {
            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);
            goto LAB_00047380;
          }
          puVar5 = PTR_UINT_0012a18c + 0x4038;
          uVar19 = (*(code *)PTR_FUN_0012a1e4)();
        }
        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);
        piVar11 = (int *)uVar19;
        if (puVar8 == puVar5) {
          local_4c = local_4c | 0x40;
          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);
          piVar10 = local_94;
          piVar3 = local_3c;
        }
        else if (puVar8 == &DAT_00000014) {
          local_4c = local_4c | 0x80;
          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);
          piVar10 = local_94;
          piVar3 = local_3c;
        }
        else if (puVar8 == (undefined1 *)0x15) {
          local_4c = local_4c | 0x100;
          local_30 = (*(code *)puVar1)(piVar17);
          uVar6 = (*(code *)PTR_FUN_0012a5b4)();
          local_30 = (short)(uVar6 / 100) * local_30;
          piVar10 = local_94;
          piVar3 = local_3c;
        }
        else {
          if (local_3c != (int *)0x0) goto LAB_00046ed4;
          piVar10 = piVar11;
          piVar3 = piVar17;
          if (puVar8 != (undefined1 *)0x16) {
            piVar10 = piVar11 + 1;
            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))
            goto LAB_00046ed4;
            piVar3 = (int *)*piVar11;
          }
        }
        goto LAB_00046fe4;
      }
      local_40 = (*(code *)puVar1)(piVar17);
      local_40 = local_40 + 1;
      piVar10 = local_94;
      piVar3 = local_3c;
      goto LAB_00046fe4;
    }
    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;
    piVar10 = local_94;
    piVar3 = local_3c;
  } while( true );
}


lui gp,0xf
addiu gp,gp,-0x4cf8
addu gp,gp,t9
addiu sp,sp,-0xb8
lw v1,-0x7cb4(gp)
addiu v0,sp,0x24
sw s5,0xa4(sp)
addiu t9,v1,0x64d0
sw s6,0xa8(sp)
or s6,a0,zero
sw v0,0x20(sp)
sw a1,0x24(sp)
or a1,v0,zero
lw s5,-0x7004(gp)
lw a0,-0x7fa8(gp)
sw gp,0x10(sp)
sw s3,0x9c(sp)
sw s0,0x90(sp)
addiu a0,a0,0x5e60
sw ra,0xb4(sp)
sw s8,0xb0(sp)
sw s7,0xac(sp)
sw s4,0xa0(sp)
sw s2,0x98(sp)
sw s1,0x94(sp)
sw t9,0x1c(sp)
lw v0,0x0(s5)
sw v0,0x8c(sp)
bal 0x000464d0
_nop
lw s0,0x24(sp)
or s3,v0,zero
lw v0,0x0(s0)
bne v0,zero,0x00046ee0
_lw gp,0x10(sp)
lw t9,-0x7f74(gp)
jalr t9
_nop
lw t9,-0x7294(gp)
addiu s2,sp,0x38
li a2,0x54
or a1,zero,zero
jalr t9
_or a0,s2,zero
addiu v0,s0,0x4
lw gp,0x10(sp)
li a1,0x2f
lw s0,0x0(s0)
andi s4,s3,0x2
sw v0,0x24(sp)
lw t9,-0x71fc(gp)
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
beq v0,zero,0x00046f8c
_or s8,v0,zero
lw t9,-0x7d64(gp)
li a2,0x20
or a1,zero,zero
lw s1,-0x7c10(gp)
jalr t9
_addiu a0,v0,0x1
li v1,-0x1
addiu a1,sp,0x3c
srlv v0,v1,v0
or a2,s4,zero
nor v0,zero,v0
sw v0,0x60(sp)
li v0,0x2
sb zero,0x0(s8)
or a0,s0,zero
or t9,s1,zero
jalr t9
_sh v0,0x5c(sp)
bgez v0,0x000473b4
_lw gp,0x10(sp)
lw a0,-0x7fc4(gp)
or a1,s0,zero
lw t9,-0x7f6c(gp)
jalr t9
_addiu a0,a0,0x4038
lw s1,-0x7c10(gp)
addiu a1,sp,0x3c
or a2,s4,zero
or t9,s1,zero
jalr t9
_or a0,s0,zero
bltz v0,0x00046f78
_lw gp,0x10(sp)
lw s0,-0x7fc4(gp)
addiu s0,s0,0x2bbc
bne s3,zero,0x000473ac
_nop
li a1,0x1
lw s4,-0x7fa8(gp)
li a0,0x5
lw s3,-0x7fc4(gp)
lw v1,0x24(sp)
movn a0,a1,v0
addiu s4,s4,0x5df8
addiu s3,s3,0x4218
lw s8,-0x7dac(gp)
sh a0,0x6c(sp)
lw v0,0x0(v1)
beq v0,zero,0x0004702c
_lw a1,0x20(sp)
lw t9,0x1c(sp)
jalr t9
_or a0,s4,zero
andi a0,v0,0x20
lw gp,0x10(sp)
beq a0,zero,0x00047198
_lw v1,0x24(sp)
andi v0,v0,0x3
lhu a0,0x6c(sp)
sll v0,v0,0x1
addu v0,v0,s3
lhu v0,0x0(v0)
or v0,v0,a0
b 0x00046fe4
_sh v0,0x6c(sp)
lhu v0,0x6c(sp)
andi v1,v0,0x200
beq v1,zero,0x0004704c
_lw v1,0x7c(sp)
bne v1,zero,0x0004704c
_lw v1,-0x7fa8(gp)
addiu v1,v1,-0x56d0
sw v1,0x7c(sp)
lw v1,0x60(sp)
beq v1,zero,0x00047074
_nop
andi v0,v0,0x4
beq v0,zero,0x00047148
_nor a1,zero,v1
lw a0,-0x7fc4(gp)
lw t9,-0x7f6c(gp)
jalr t9
_addiu a0,a0,0x4078
li v1,0x1
beq s6,v1,0x000470fc
_lw t9,-0x7cc0(gp)
or a2,zero,zero
li a1,0x1
jalr t9
_li a0,0x2
ori a1,zero,0x890c
lw gp,0x10(sp)
or a2,s2,zero
or a0,v0,zero
lw a3,-0x7fc4(gp)
lw t9,-0x7d44(gp)
jalr t9
_addiu a3,a3,0x4054
lw gp,0x10(sp)
lw v1,0x8c(sp)
lw v0,0x0(s5)
bne v1,v0,0x000470f0
_lw ra,0xb4(sp)
lw s8,0xb0(sp)
lw s7,0xac(sp)
lw s6,0xa8(sp)
lw s5,0xa4(sp)
lw s4,0xa0(sp)
lw s3,0x9c(sp)
lw s2,0x98(sp)
lw s1,0x94(sp)
lw s0,0x90(sp)
jr ra
_addiu sp,sp,0xb8
lw t9,-0x7088(gp)
jalr t9
_nop
andi v0,v0,0x4
beq v0,zero,0x0004710c
_li v0,-0x1
sw v0,0x60(sp)
lw t9,-0x7cc0(gp)
or a2,zero,zero
li a1,0x1
jalr t9
_li a0,0x2
ori a1,zero,0x890b
lw gp,0x10(sp)
or a2,s2,zero
or a0,v0,zero
lw a3,-0x7fc4(gp)
lw t9,-0x7d44(gp)
jalr t9
_addiu a3,a3,0x4048
b 0x000470b4
_lw gp,0x10(sp)
subu v1,zero,v1
and v1,v1,a1
beq v1,zero,0x00047168
_lw a0,-0x7fc4(gp)
or a1,s0,zero
lw t9,-0x7f6c(gp)
jalr t9
_addiu a0,a0,0x40a0
lw v0,0x40(sp)
and a1,a1,v0
beq a1,zero,0x00047184
_lw a0,-0x7fc4(gp)
lw t9,-0x7f6c(gp)
jalr t9
_addiu a0,a0,0x40b4
li v0,0x1
beq s6,v0,0x0004710c
_lw t9,-0x7cc0(gp)
b 0x00047084
_or a2,zero,zero
li a0,0x10
bne v0,a0,0x000471c4
_lw s7,-0x4(v1)
or t9,s8,zero
jalr t9
_or a0,s7,zero
addiu v0,v0,0x1
lw gp,0x10(sp)
lw v1,0x24(sp)
b 0x00046fe4
_sh v0,0x78(sp)
li a0,0x11
bne v0,a0,0x00047208
_li a0,0x12
lw v0,0x60(sp)
bne v0,zero,0x00046ed4
_or a2,zero,zero
addiu a1,sp,0x28
or t9,s1,zero
jalr t9
_or a0,s7,zero
bgez v0,0x00047380
_lw gp,0x10(sp)
lw a0,-0x7fc4(gp)
or a1,s7,zero
lw t9,-0x7f6c(gp)
jalr t9
_addiu a0,a0,0x4038
bne v0,a0,0x0004725c
_li a0,0x13
lhu v0,0x6c(sp)
andi v0,v0,0x2
bne v0,zero,0x00046ed4
_li a2,0x1
addiu a1,sp,0x4c
or t9,s1,zero
jalr t9
_or a0,s7,zero
lhu v1,0x6c(sp)
lw gp,0x10(sp)
ori v1,v1,0x2
beq v0,zero,0x00047368
_sh v1,0x6c(sp)
bgez v0,0x00047370
_or a1,s7,zero
lw a0,-0x7fc4(gp)
lw t9,-0x7f6c(gp)
jalr t9
_addiu a0,a0,0x4038
bne v0,a0,0x00047290
_ori a2,zero,0x8000
lhu v0,0x6c(sp)
lw t9,-0x7d64(gp)
li a1,0x40
or a0,s7,zero
ori v0,v0,0x40
jalr t9
_sh v0,0x6c(sp)
lw gp,0x10(sp)
lw v1,0x24(sp)
b 0x00046fe4
_sw v0,0x80(sp)
li a0,0x14
bne v0,a0,0x000472cc
_lui a2,0x7fff
lhu v0,0x6c(sp)
lw t9,-0x7d64(gp)
li a1,0x80
ori a2,a2,0xffff
ori v0,v0,0x80
or a0,s7,zero
jalr t9
_sh v0,0x6c(sp)
lw gp,0x10(sp)
lw v1,0x24(sp)
b 0x00046fe4
_sw v0,0x84(sp)
li a0,0x15
bne v0,a0,0x00047328
_or a0,s7,zero
lhu v0,0x6c(sp)
or t9,s8,zero
ori v0,v0,0x100
jalr t9
_sh v0,0x6c(sp)
lw gp,0x10(sp)
lw t9,-0x7b9c(gp)
jalr t9
_sh v0,0x88(sp)
lui a0,0x51eb
lhu a1,0x88(sp)
ori a0,a0,0x851f
lw gp,0x10(sp)
multu v0,a0
lw v1,0x24(sp)
mfhi v0
srl v0,v0,0x5
mul v0,v0,a1
b 0x00046fe4
_sh v0,0x88(sp)
lw a0,0x7c(sp)
bne a0,zero,0x00046ed4
_li a0,0x16
bne v0,a0,0x00047344
_nop
b 0x00046fe4
_sw s7,0x7c(sp)
bne v0,zero,0x00046ed4
_addiu v0,v1,0x4
lw a0,0x4(v1)
bne a0,zero,0x00046ed4
_sw v0,0x24(sp)
lw s7,0x0(v1)
or v1,v0,zero
b 0x00046fe4
_sw s7,0x7c(sp)
b 0x00046fe4
_lw v1,0x24(sp)
lw a0,-0x7fc4(gp)
lw t9,-0x7f6c(gp)
jalr t9
_addiu a0,a0,0x4060
lw v0,0x28(sp)
or s0,s7,zero
lw v1,0x24(sp)
sw v0,0x5c(sp)
lw v0,0x2c(sp)
sw v0,0x60(sp)
lw v0,0x30(sp)
sw v0,0x64(sp)
lw v0,0x34(sp)
b 0x00046fe4
_sw v0,0x68(sp)
b 0x00046fbc
_andi v0,s3,0x1
li v1,0x2f
or s0,zero,zero
b 0x00046fb4
_sb v1,0x0(s8)
(translation_unit "void FUN_00046e48(int param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  ushort uVar9;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  int *piVar10;\n  int *piVar11;\n  undefined *puVar12;\n  int iVar13;\n  int *piVar14;\n  code *pcVar15;\n  undefined *puVar16;\n  int *piVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  int *local_94;\n  undefined4 local_90;\n  uint local_8c;\n  undefined1 auStack_80 [4];\n  undefined1 auStack_7c [4];\n  uint local_78;\n  undefined1 auStack_6c [16];\n  undefined4 local_5c;\n  uint local_58;\n  ushort local_4c;\n  short local_40;\n  int *local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  short local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = param_2;\n  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);\n  piVar14 = local_94;\n  if (*local_94 != 0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);\n  local_94 = piVar14 + 1;\n  iVar13 = *piVar14;\n  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);\n  pcVar15 = (code *)PTR_FUN_0012a540;\n  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);\n  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));\n  *puVar5 = 0;\n  local_5c = CONCAT22(2,local_5c._2_2_);\n  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);\n  if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }\n  puVar1 = PTR_FUN_0012a3a4;\n  if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }\n  local_4c = 5;\n  if (uVar6 != 0) {\n    local_4c = 1;\n  }\n  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;\n  puVar4 = PTR_UINT_0012a18c + 0x4218;\n  piVar10 = local_94;\n  piVar3 = local_3c;\nLAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );\n}\n\n" (function_definition "void FUN_00046e48(int param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  ushort uVar9;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  int *piVar10;\n  int *piVar11;\n  undefined *puVar12;\n  int iVar13;\n  int *piVar14;\n  code *pcVar15;\n  undefined *puVar16;\n  int *piVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  int *local_94;\n  undefined4 local_90;\n  uint local_8c;\n  undefined1 auStack_80 [4];\n  undefined1 auStack_7c [4];\n  uint local_78;\n  undefined1 auStack_6c [16];\n  undefined4 local_5c;\n  uint local_58;\n  ushort local_4c;\n  short local_40;\n  int *local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  short local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = param_2;\n  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);\n  piVar14 = local_94;\n  if (*local_94 != 0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);\n  local_94 = piVar14 + 1;\n  iVar13 = *piVar14;\n  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);\n  pcVar15 = (code *)PTR_FUN_0012a540;\n  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);\n  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));\n  *puVar5 = 0;\n  local_5c = CONCAT22(2,local_5c._2_2_);\n  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);\n  if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }\n  puVar1 = PTR_FUN_0012a3a4;\n  if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }\n  local_4c = 5;\n  if (uVar6 != 0) {\n    local_4c = 1;\n  }\n  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;\n  puVar4 = PTR_UINT_0012a18c + 0x4218;\n  piVar10 = local_94;\n  piVar3 = local_3c;\nLAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00046e48(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  ushort uVar9;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  int *piVar10;\n  int *piVar11;\n  undefined *puVar12;\n  int iVar13;\n  int *piVar14;\n  code *pcVar15;\n  undefined *puVar16;\n  int *piVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  int *local_94;\n  undefined4 local_90;\n  uint local_8c;\n  undefined1 auStack_80 [4];\n  undefined1 auStack_7c [4];\n  uint local_78;\n  undefined1 auStack_6c [16];\n  undefined4 local_5c;\n  uint local_58;\n  ushort local_4c;\n  short local_40;\n  int *local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  short local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = param_2;\n  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);\n  piVar14 = local_94;\n  if (*local_94 != 0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);\n  local_94 = piVar14 + 1;\n  iVar13 = *piVar14;\n  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);\n  pcVar15 = (code *)PTR_FUN_0012a540;\n  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);\n  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));\n  *puVar5 = 0;\n  local_5c = CONCAT22(2,local_5c._2_2_);\n  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);\n  if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }\n  puVar1 = PTR_FUN_0012a3a4;\n  if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }\n  local_4c = 5;\n  if (uVar6 != 0) {\n    local_4c = 1;\n  }\n  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;\n  puVar4 = PTR_UINT_0012a18c + 0x4218;\n  piVar10 = local_94;\n  piVar3 = local_3c;\nLAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ushort uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined8 uVar19;" type_identifier identifier ;) (declaration "int *local_94;" primitive_type (pointer_declarator "*local_94" * identifier) ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "undefined1 auStack_80 [4];" type_identifier (array_declarator "auStack_80 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_7c [4];" type_identifier (array_declarator "auStack_7c [4]" identifier [ number_literal ]) ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "undefined1 auStack_6c [16];" type_identifier (array_declarator "auStack_6c [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "ushort local_4c;" type_identifier identifier ;) (declaration "short local_40;" (sized_type_specifier "short" short) identifier ;) (declaration "int *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "short local_30;" (sized_type_specifier "short" short) identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0)" identifier = (cast_expression "(code *)(PTR_LAB_0012a49c + 0x64d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0012a49c + 0x64d0)" ( (binary_expression "PTR_LAB_0012a49c + 0x64d0" identifier + number_literal) )))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_94 = param_2;" (assignment_expression "local_94 = param_2" identifier = identifier) ;) (expression_statement "puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);" (assignment_expression "puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" identifier = (cast_expression "(undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" identifier (argument_list "(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" ( (binary_expression "PTR_FUN_0012a1a8 + 0x5e60" identifier + number_literal) , (pointer_expression "&local_94" & identifier) ))))) ;) (expression_statement "piVar14 = local_94;" (assignment_expression "piVar14 = local_94" identifier = identifier) ;) (if_statement "if (*local_94 != 0) goto LAB_00046ee0;" if (parenthesized_expression "(*local_94 != 0)" ( (binary_expression "*local_94 != 0" (pointer_expression "*local_94" * identifier) != number_literal) )) (goto_statement "goto LAB_00046ee0;" goto statement_identifier ;)) (labeled_statement "LAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();" statement_identifier : (expression_statement "(*(code *)PTR_FUN_0012a1dc)();" (call_expression "(*(code *)PTR_FUN_0012a1dc)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a1dc)" ( (pointer_expression "*(code *)PTR_FUN_0012a1dc" * (cast_expression "(code *)PTR_FUN_0012a1dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);" statement_identifier : (expression_statement "(*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);" (call_expression "(*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54)" (parenthesized_expression "(*(code *)PTR_memset_0012aebc)" ( (pointer_expression "*(code *)PTR_memset_0012aebc" * (cast_expression "(code *)PTR_memset_0012aebc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_80,0,0x54)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "local_94 = piVar14 + 1;" (assignment_expression "local_94 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);" (assignment_expression "puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strchr_0012af54)(iVar13,0x2f)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,0x2f)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar15 = (code *)PTR_FUN_0012a540;" (assignment_expression "pcVar15 = (code *)PTR_FUN_0012a540" identifier = (cast_expression "(code *)PTR_FUN_0012a540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;" if (parenthesized_expression "(puVar5 == (undefined1 *)0x0)" ( (binary_expression "puVar5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00046f8c;" goto statement_identifier ;)) (expression_statement "uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);" (assignment_expression "uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20)" identifier = (call_expression "(*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20)" (parenthesized_expression "(*(code *)PTR_FUN_0012a3ec)" ( (pointer_expression "*(code *)PTR_FUN_0012a3ec" * (cast_expression "(code *)PTR_FUN_0012a3ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5 + 1,0,0x20)" ( (binary_expression "puVar5 + 1" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));" (assignment_expression "local_58 = ~(0xffffffffU >> (uVar6 & 0x1f))" identifier = (unary_expression "~(0xffffffffU >> (uVar6 & 0x1f))" ~ (parenthesized_expression "(0xffffffffU >> (uVar6 & 0x1f))" ( (binary_expression "0xffffffffU >> (uVar6 & 0x1f)" number_literal >> (parenthesized_expression "(uVar6 & 0x1f)" ( (binary_expression "uVar6 & 0x1f" identifier & number_literal) ))) )))) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "local_5c = CONCAT22(2,local_5c._2_2_);" (assignment_expression "local_5c = CONCAT22(2,local_5c._2_2_)" identifier = (call_expression "CONCAT22(2,local_5c._2_2_)" identifier (argument_list "(2,local_5c._2_2_)" ( number_literal , (field_expression "local_5c._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);" (assignment_expression "uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2)" identifier = (call_expression "(*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar13,auStack_7c,(uint)puVar4 & 2)" ( identifier , identifier , (binary_expression "(uint)puVar4 & 2" (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }" if (parenthesized_expression "((int)uVar6 < 0)" ( (binary_expression "(int)uVar6 < 0" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }" { (do_statement "do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);" do (compound_statement "{\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    }" { (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x4038,iVar13)" ( (binary_expression "PTR_UINT_0012a18c + 0x4038" identifier + number_literal) , identifier ))) ;) (labeled_statement "LAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;" statement_identifier : (expression_statement "pcVar15 = (code *)PTR_FUN_0012a540;" (assignment_expression "pcVar15 = (code *)PTR_FUN_0012a540" identifier = (cast_expression "(code *)PTR_FUN_0012a540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);" (assignment_expression "uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2)" identifier = (call_expression "(*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2)" (parenthesized_expression "(*(code *)PTR_FUN_0012a540)" ( (pointer_expression "*(code *)PTR_FUN_0012a540" * (cast_expression "(code *)PTR_FUN_0012a540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,auStack_7c,(uint)puVar4 & 2)" ( identifier , identifier , (binary_expression "(uint)puVar4 & 2" (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) }) while (parenthesized_expression "((int)uVar6 < 0)" ( (binary_expression "(int)uVar6 < 0" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) ;) (expression_statement "piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);" (assignment_expression "piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc)" identifier = (cast_expression "(int *)(PTR_UINT_0012a18c + 0x2bbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_0012a18c + 0x2bbc)" ( (binary_expression "PTR_UINT_0012a18c + 0x2bbc" identifier + number_literal) )))) ;) }) (else_clause "else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }" else (compound_statement "{\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }" { (expression_statement "piVar14 = (int *)0x0;" (assignment_expression "piVar14 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar5 = 0x2f;" (assignment_expression "*puVar5 = 0x2f" (pointer_expression "*puVar5" * identifier) = number_literal) ;) }))) (expression_statement "puVar1 = PTR_FUN_0012a3a4;" (assignment_expression "puVar1 = PTR_FUN_0012a3a4" identifier = identifier) ;) (if_statement "if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }" if (parenthesized_expression "(puVar4 != (undefined *)0x0)" ( (binary_expression "puVar4 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = (uint)puVar4 & 1;\n  }" { (expression_statement "uVar6 = (uint)puVar4 & 1;" (assignment_expression "uVar6 = (uint)puVar4 & 1" identifier = (binary_expression "(uint)puVar4 & 1" (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) })) (expression_statement "local_4c = 5;" (assignment_expression "local_4c = 5" identifier = number_literal) ;) (if_statement "if (uVar6 != 0) {\n    local_4c = 1;\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    local_4c = 1;\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) })) (expression_statement "puVar16 = PTR_FUN_0012a1a8 + 0x5df8;" (assignment_expression "puVar16 = PTR_FUN_0012a1a8 + 0x5df8" identifier = (binary_expression "PTR_FUN_0012a1a8 + 0x5df8" identifier + number_literal)) ;) (expression_statement "puVar4 = PTR_UINT_0012a18c + 0x4218;" (assignment_expression "puVar4 = PTR_UINT_0012a18c + 0x4218" identifier = (binary_expression "PTR_UINT_0012a18c + 0x4218" identifier + number_literal)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) (labeled_statement "LAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );" statement_identifier : (do_statement "do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );" do (compound_statement "{\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  }" { (expression_statement "local_3c = piVar3;" (assignment_expression "local_3c = piVar3" identifier = identifier) ;) (if_statement "if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }" if (parenthesized_expression "(*piVar10 == 0)" ( (binary_expression "*piVar10 == 0" (pointer_expression "*piVar10" * identifier) == number_literal) )) (compound_statement "{\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }" { (if_statement "if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }" if (parenthesized_expression "(((local_4c & 0x200) != 0) && (local_3c == (int *)0x0))" ( (binary_expression "((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)" (parenthesized_expression "((local_4c & 0x200) != 0)" ( (binary_expression "(local_4c & 0x200) != 0" (parenthesized_expression "(local_4c & 0x200)" ( (binary_expression "local_4c & 0x200" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_3c == (int *)0x0)" ( (binary_expression "local_3c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }" { (expression_statement "local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);" (assignment_expression "local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0)" identifier = (cast_expression "(int *)(PTR_FUN_0012a1a8 + -0x56d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_0012a1a8 + -0x56d0)" ( (binary_expression "PTR_FUN_0012a1a8 + -0x56d0" identifier + number_literal) )))) ;) })) (expression_statement "uVar9 = local_4c;" (assignment_expression "uVar9 = local_4c" identifier = identifier) ;) (if_statement "if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }" { (if_statement "if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }" if (parenthesized_expression "((local_4c & 4) == 0)" ( (binary_expression "(local_4c & 4) == 0" (parenthesized_expression "(local_4c & 4)" ( (binary_expression "local_4c & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }" { (expression_statement "piVar10 = (int *)~local_58;" (assignment_expression "piVar10 = (int *)~local_58" identifier = (cast_expression "(int *)~local_58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (unary_expression "~local_58" ~ identifier))) ;) (if_statement "if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }" if (parenthesized_expression "((-local_58 & ~local_58) != 0)" ( (binary_expression "(-local_58 & ~local_58) != 0" (parenthesized_expression "(-local_58 & ~local_58)" ( (binary_expression "-local_58 & ~local_58" (unary_expression "-local_58" - identifier) & (unary_expression "~local_58" ~ identifier)) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }" { (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x40a0)" ( (binary_expression "PTR_UINT_0012a18c + 0x40a0" identifier + number_literal) ))) ;) (expression_statement "piVar10 = piVar14;" (assignment_expression "piVar10 = piVar14" identifier = identifier) ;) })) (if_statement "if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }" if (parenthesized_expression "(((uint)piVar10 & local_78) != 0)" ( (binary_expression "((uint)piVar10 & local_78) != 0" (parenthesized_expression "((uint)piVar10 & local_78)" ( (binary_expression "(uint)piVar10 & local_78" (cast_expression "(uint)piVar10" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }" { (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x40b4)" ( (binary_expression "PTR_UINT_0012a18c + 0x40b4" identifier + number_literal) ))) ;) })) (if_statement "if (param_1 == 1) goto LAB_0004710c;" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004710c;" goto statement_identifier ;)) (goto_statement "goto LAB_00047084;" goto statement_identifier ;) })) (expression_statement "uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);" (assignment_expression "uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078)" identifier = (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x4078)" ( (binary_expression "PTR_UINT_0012a18c + 0x4078" identifier + number_literal) )))) ;) })) (if_statement "if (param_1 == 1) goto LAB_000470fc;" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000470fc;" goto statement_identifier ;)) (labeled_statement "LAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" statement_identifier : (expression_statement "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" (assignment_expression "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0)" identifier = (call_expression "(*(code *)PTR_FUN_0012a490)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a490)" ( (pointer_expression "*(code *)PTR_FUN_0012a490" * (cast_expression "(code *)PTR_FUN_0012a490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal )))) ;)) (expression_statement "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);" (call_expression "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054)" (parenthesized_expression "(*(code *)PTR_FUN_0012a40c)" ( (pointer_expression "*(code *)PTR_FUN_0012a40c" * (cast_expression "(code *)PTR_FUN_0012a40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054)" ( identifier , number_literal , identifier , (binary_expression "PTR_UINT_0012a18c + 0x4054" identifier + number_literal) ))) ;) (while_statement "while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }" while (parenthesized_expression "(local_2c != *(int *)puVar2)" ( (binary_expression "local_2c != *(int *)puVar2" identifier != (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }" { (expression_statement "uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }" statement_identifier : (if_statement "if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }" if (parenthesized_expression "((uVar9 & 4) != 0)" ( (binary_expression "(uVar9 & 4) != 0" (parenthesized_expression "(uVar9 & 4)" ( (binary_expression "uVar9 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_58 = 0xffffffff;\n        }" { (expression_statement "local_58 = 0xffffffff;" (assignment_expression "local_58 = 0xffffffff" identifier = number_literal) ;) }))) (labeled_statement "LAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" statement_identifier : (expression_statement "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" (assignment_expression "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0)" identifier = (call_expression "(*(code *)PTR_FUN_0012a490)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a490)" ( (pointer_expression "*(code *)PTR_FUN_0012a490" * (cast_expression "(code *)PTR_FUN_0012a490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal )))) ;)) (expression_statement "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);" (call_expression "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048)" (parenthesized_expression "(*(code *)PTR_FUN_0012a40c)" ( (pointer_expression "*(code *)PTR_FUN_0012a40c" * (cast_expression "(code *)PTR_FUN_0012a40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048)" ( identifier , number_literal , identifier , (binary_expression "PTR_UINT_0012a18c + 0x4048" identifier + number_literal) ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "uVar6 = (*pcVar18)(puVar16,&local_94);" (assignment_expression "uVar6 = (*pcVar18)(puVar16,&local_94)" identifier = (call_expression "(*pcVar18)(puVar16,&local_94)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(puVar16,&local_94)" ( identifier , (pointer_expression "&local_94" & identifier) )))) ;) (expression_statement "uVar19 = CONCAT44(uVar6,local_94);" (assignment_expression "uVar19 = CONCAT44(uVar6,local_94)" identifier = (call_expression "CONCAT44(uVar6,local_94)" identifier (argument_list "(uVar6,local_94)" ( identifier , identifier )))) ;) (if_statement "if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }" if (parenthesized_expression "((uVar6 & 0x20) == 0)" ( (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" ( (binary_expression "uVar6 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }" { (expression_statement "piVar17 = (int *)local_94[-1];" (assignment_expression "piVar17 = (int *)local_94[-1]" identifier = (cast_expression "(int *)local_94[-1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_94[-1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }" if (parenthesized_expression "(uVar6 != 0x10)" ( (binary_expression "uVar6 != 0x10" identifier != number_literal) )) (compound_statement "{\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }" { (expression_statement "puVar12 = (undefined *)0x12;" (assignment_expression "puVar12 = (undefined *)0x12" identifier = (cast_expression "(undefined *)0x12" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }" if (parenthesized_expression "(uVar6 == 0x11)" ( (binary_expression "uVar6 == 0x11" identifier == number_literal) )) (compound_statement "{\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }" { (if_statement "if (local_58 != 0) goto LAB_00046ed4;" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "iVar13 = (*pcVar15)(piVar17,&local_90,0);" (assignment_expression "iVar13 = (*pcVar15)(piVar17,&local_90,0)" identifier = (call_expression "(*pcVar15)(piVar17,&local_90,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar17,&local_90,0)" ( identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (if_statement "if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }" { (expression_statement "puVar12 = PTR_UINT_0012a18c + 0x4038;" (assignment_expression "puVar12 = PTR_UINT_0012a18c + 0x4038" identifier = (binary_expression "PTR_UINT_0012a18c + 0x4038" identifier + number_literal)) ;) (expression_statement "uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);" (assignment_expression "uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17)" identifier = (call_expression "(*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12,piVar17)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00047208;" goto statement_identifier ;) })) (labeled_statement "LAB_00047380:\n          local_5c = local_90;" statement_identifier : (expression_statement "local_5c = local_90;" (assignment_expression "local_5c = local_90" identifier = identifier) ;)) (expression_statement "local_58 = local_8c;" (assignment_expression "local_58 = local_8c" identifier = identifier) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar14 = piVar17;" (assignment_expression "piVar14 = piVar17" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;) })) (labeled_statement "LAB_00047208:\n        puVar5 = (undefined1 *)0x13;" statement_identifier : (expression_statement "puVar5 = (undefined1 *)0x13;" (assignment_expression "puVar5 = (undefined1 *)0x13" identifier = (cast_expression "(undefined1 *)0x13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }" if (parenthesized_expression "((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12)" ( (binary_expression "(undefined *)((ulonglong)uVar19 >> 0x20) == puVar12" (cast_expression "(undefined *)((ulonglong)uVar19 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" ( (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == identifier) )) (compound_statement "{\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }" { (if_statement "if ((local_4c & 2) != 0) goto LAB_00046ed4;" if (parenthesized_expression "((local_4c & 2) != 0)" ( (binary_expression "(local_4c & 2) != 0" (parenthesized_expression "(local_4c & 2)" ( (binary_expression "local_4c & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "iVar13 = (*pcVar15)(piVar17,auStack_6c,1);" (assignment_expression "iVar13 = (*pcVar15)(piVar17,auStack_6c,1)" identifier = (call_expression "(*pcVar15)(piVar17,auStack_6c,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar17,auStack_6c,1)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_4c = local_4c | 2;" (assignment_expression "local_4c = local_4c | 2" identifier = (binary_expression "local_4c | 2" identifier | number_literal)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) (if_statement "if (iVar13 == 0) goto LAB_00046fe4;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;)) (if_statement "if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }" if (parenthesized_expression "(-1 < iVar13)" ( (binary_expression "-1 < iVar13" number_literal < identifier) )) (compound_statement "{\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }" { (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x4060,piVar17)" ( (binary_expression "PTR_UINT_0012a18c + 0x4060" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_00047380;" goto statement_identifier ;) })) (expression_statement "puVar5 = PTR_UINT_0012a18c + 0x4038;" (assignment_expression "puVar5 = PTR_UINT_0012a18c + 0x4038" identifier = (binary_expression "PTR_UINT_0012a18c + 0x4038" identifier + number_literal)) ;) (expression_statement "uVar19 = (*(code *)PTR_FUN_0012a1e4)();" (assignment_expression "uVar19 = (*(code *)PTR_FUN_0012a1e4)()" identifier = (call_expression "(*(code *)PTR_FUN_0012a1e4)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) })) (expression_statement "puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);" (assignment_expression "puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20)" identifier = (cast_expression "(undefined1 *)((ulonglong)uVar19 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" ( (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar11 = (int *)uVar19;" (assignment_expression "piVar11 = (int *)uVar19" identifier = (cast_expression "(int *)uVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" if (parenthesized_expression "(puVar8 == puVar5)" ( (binary_expression "puVar8 == puVar5" identifier == identifier) )) (compound_statement "{\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }" { (expression_statement "local_4c = local_4c | 0x40;" (assignment_expression "local_4c = local_4c | 0x40" identifier = (binary_expression "local_4c | 0x40" identifier | number_literal)) ;) (expression_statement "local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);" (assignment_expression "local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000)" identifier = (call_expression "(*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000)" (parenthesized_expression "(*(code *)PTR_FUN_0012a3ec)" ( (pointer_expression "*(code *)PTR_FUN_0012a3ec" * (cast_expression "(code *)PTR_FUN_0012a3ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar17,0x40,0x8000)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) }) (else_clause "else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" else (if_statement "if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" if (parenthesized_expression "(puVar8 == &DAT_00000014)" ( (binary_expression "puVar8 == &DAT_00000014" identifier == (pointer_expression "&DAT_00000014" & identifier)) )) (compound_statement "{\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }" { (expression_statement "local_4c = local_4c | 0x80;" (assignment_expression "local_4c = local_4c | 0x80" identifier = (binary_expression "local_4c | 0x80" identifier | number_literal)) ;) (expression_statement "local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);" (assignment_expression "local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff)" identifier = (call_expression "(*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff)" (parenthesized_expression "(*(code *)PTR_FUN_0012a3ec)" ( (pointer_expression "*(code *)PTR_FUN_0012a3ec" * (cast_expression "(code *)PTR_FUN_0012a3ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar17,0x80,0x7fffffff)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) }) (else_clause "else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" else (if_statement "if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" if (parenthesized_expression "(puVar8 == (undefined1 *)0x15)" ( (binary_expression "puVar8 == (undefined1 *)0x15" identifier == (cast_expression "(undefined1 *)0x15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }" { (expression_statement "local_4c = local_4c | 0x100;" (assignment_expression "local_4c = local_4c | 0x100" identifier = (binary_expression "local_4c | 0x100" identifier | number_literal)) ;) (expression_statement "local_30 = (*(code *)puVar1)(piVar17);" (assignment_expression "local_30 = (*(code *)puVar1)(piVar17)" identifier = (call_expression "(*(code *)puVar1)(piVar17)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar17)" ( identifier )))) ;) (expression_statement "uVar6 = (*(code *)PTR_FUN_0012a5b4)();" (assignment_expression "uVar6 = (*(code *)PTR_FUN_0012a5b4)()" identifier = (call_expression "(*(code *)PTR_FUN_0012a5b4)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a5b4)" ( (pointer_expression "*(code *)PTR_FUN_0012a5b4" * (cast_expression "(code *)PTR_FUN_0012a5b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_30 = (short)(uVar6 / 100) * local_30;" (assignment_expression "local_30 = (short)(uVar6 / 100) * local_30" identifier = (binary_expression "(short)(uVar6 / 100) * local_30" (cast_expression "(short)(uVar6 / 100)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(uVar6 / 100)" ( (binary_expression "uVar6 / 100" identifier / number_literal) ))) * identifier)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) }) (else_clause "else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" else (compound_statement "{\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" { (if_statement "if (local_3c != (int *)0x0) goto LAB_00046ed4;" if (parenthesized_expression "(local_3c != (int *)0x0)" ( (binary_expression "local_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "piVar10 = piVar11;" (assignment_expression "piVar10 = piVar11" identifier = identifier) ;) (expression_statement "piVar3 = piVar17;" (assignment_expression "piVar3 = piVar17" identifier = identifier) ;) (if_statement "if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }" if (parenthesized_expression "(puVar8 != (undefined1 *)0x16)" ( (binary_expression "puVar8 != (undefined1 *)0x16" identifier != (cast_expression "(undefined1 *)0x16" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }" { (expression_statement "piVar10 = piVar11 + 1;" (assignment_expression "piVar10 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;" if (parenthesized_expression "((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))" ( (binary_expression "(puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0)" (parenthesized_expression "(puVar8 != (undefined1 *)0x0)" ( (binary_expression "puVar8 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_94 = piVar10, piVar11[1] != 0)" ( (comma_expression "local_94 = piVar10, piVar11[1] != 0" (assignment_expression "local_94 = piVar10" identifier = identifier) , (binary_expression "piVar11[1] != 0" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != number_literal)) ))) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)*piVar11;" (assignment_expression "piVar3 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) })) }))))))) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;) })) (expression_statement "local_40 = (*(code *)puVar1)(piVar17);" (assignment_expression "local_40 = (*(code *)puVar1)(piVar17)" identifier = (call_expression "(*(code *)puVar1)(piVar17)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar17)" ( identifier )))) ;) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;) })) (expression_statement "local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;" (assignment_expression "local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c" identifier = (binary_expression "*(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c" (pointer_expression "*(ushort *)(puVar4 + (uVar6 & 3) * 2)" * (cast_expression "(ushort *)(puVar4 + (uVar6 & 3) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (uVar6 & 3) * 2)" ( (binary_expression "puVar4 + (uVar6 & 3) * 2" identifier + (binary_expression "(uVar6 & 3) * 2" (parenthesized_expression "(uVar6 & 3)" ( (binary_expression "uVar6 & 3" identifier & number_literal) )) * number_literal)) )))) | identifier)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "void INET_setroute(int action,char **args)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  char **ppcVar3;\n  int iVar4;\n  undefined *puVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  ushort uVar11;\n  undefined4 uVar8;\n  short sVar12;\n  int iVar9;\n  undefined1 *puVar10;\n  char **ppcVar13;\n  char **ppcVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  char **ppcVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  char **ppcVar20;\n  code *pcVar21;\n  undefined8 uVar22;\n  char **local_94;\n  sockaddr mask;\n  char rt_buf [84];\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar21 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  iVar4 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = args;\n  puVar5 = (undefined *)\n           kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5e60,&local_94);\n  ppcVar17 = local_94;\n  if (*local_94 != (char *)0x0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_bb_show_usage_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(rt_buf,0,0x54);\n  local_94 = ppcVar17 + 1;\n  pcVar16 = *ppcVar17;\n  puVar6 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(pcVar16,0x2f);\n  pcVar18 = (code *)PTR_INET_resolve_0012a540;\n  if (puVar6 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar7 = (*(code *)PTR_xatoul_range_0012a3ec)(puVar6 + 1,0,0x20);\n  rt_buf._40_4_ = ~(0xffffffffU >> (uVar7 & 0x1f));\n  *puVar6 = 0;\n  rt_buf[0x24] = '\0';\n  rt_buf[0x25] = '\x02';\n  uVar7 = (*pcVar18)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n  if ((int)uVar7 < 0) {\n    do {\n      (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16);\nLAB_00046f8c:\n      pcVar18 = (code *)PTR_INET_resolve_0012a540;\n      uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n    } while ((int)uVar7 < 0);\n    ppcVar17 = (char **)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    ppcVar17 = (char **)0x0;\n    *puVar6 = 0x2f;\n  }\n  puVar1 = PTR_xatoul_0012a3a4;\n  if (puVar5 != (undefined *)0x0) {\n    uVar7 = (uint)puVar5 & 1;\n  }\n  rt_buf[0x34] = '\0';\n  rt_buf[0x35] = '\x05';\n  if (uVar7 != 0) {\n    rt_buf[0x34] = '\0';\n    rt_buf[0x35] = '\x01';\n  }\n  puVar19 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5df8;\n  puVar5 = PTR_UINT_0012a18c + 0x4218;\n  ppcVar13 = local_94;\n  ppcVar3 = (char **)rt_buf._68_4_;\nLAB_00046fe4:\n  do {\n    rt_buf._68_4_ = ppcVar3;\n    if (*ppcVar13 == (char *)0x0) {\n      if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }\n      uVar11 = rt_buf._52_2_;\n      if (rt_buf._40_4_ != 0) {\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (action == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n      (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);\n      while (iVar4 != *(int *)puVar2) {\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar7 = (*pcVar21)(puVar19,&local_94);\n    uVar22 = CONCAT44(uVar7,local_94);\n    if ((uVar7 & 0x20) == 0) {\n      ppcVar20 = (char **)local_94[-1];\n      if (uVar7 != 0x10) {\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      sVar12 = (*(code *)puVar1)(ppcVar20);\n      rt_buf._64_2_ = sVar12 + 1;\n      ppcVar13 = local_94;\n      ppcVar3 = (char **)rt_buf._68_4_;\n      goto LAB_00046fe4;\n    }\n    rt_buf._52_2_ = *(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_;\n    ppcVar13 = local_94;\n    ppcVar3 = (char **)rt_buf._68_4_;\n  } while( true );\n}\n\n" (function_definition "void INET_setroute(int action,char **args)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  char **ppcVar3;\n  int iVar4;\n  undefined *puVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  ushort uVar11;\n  undefined4 uVar8;\n  short sVar12;\n  int iVar9;\n  undefined1 *puVar10;\n  char **ppcVar13;\n  char **ppcVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  char **ppcVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  char **ppcVar20;\n  code *pcVar21;\n  undefined8 uVar22;\n  char **local_94;\n  sockaddr mask;\n  char rt_buf [84];\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar21 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  iVar4 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = args;\n  puVar5 = (undefined *)\n           kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5e60,&local_94);\n  ppcVar17 = local_94;\n  if (*local_94 != (char *)0x0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_bb_show_usage_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(rt_buf,0,0x54);\n  local_94 = ppcVar17 + 1;\n  pcVar16 = *ppcVar17;\n  puVar6 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(pcVar16,0x2f);\n  pcVar18 = (code *)PTR_INET_resolve_0012a540;\n  if (puVar6 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar7 = (*(code *)PTR_xatoul_range_0012a3ec)(puVar6 + 1,0,0x20);\n  rt_buf._40_4_ = ~(0xffffffffU >> (uVar7 & 0x1f));\n  *puVar6 = 0;\n  rt_buf[0x24] = '\0';\n  rt_buf[0x25] = '\x02';\n  uVar7 = (*pcVar18)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n  if ((int)uVar7 < 0) {\n    do {\n      (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16);\nLAB_00046f8c:\n      pcVar18 = (code *)PTR_INET_resolve_0012a540;\n      uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n    } while ((int)uVar7 < 0);\n    ppcVar17 = (char **)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    ppcVar17 = (char **)0x0;\n    *puVar6 = 0x2f;\n  }\n  puVar1 = PTR_xatoul_0012a3a4;\n  if (puVar5 != (undefined *)0x0) {\n    uVar7 = (uint)puVar5 & 1;\n  }\n  rt_buf[0x34] = '\0';\n  rt_buf[0x35] = '\x05';\n  if (uVar7 != 0) {\n    rt_buf[0x34] = '\0';\n    rt_buf[0x35] = '\x01';\n  }\n  puVar19 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5df8;\n  puVar5 = PTR_UINT_0012a18c + 0x4218;\n  ppcVar13 = local_94;\n  ppcVar3 = (char **)rt_buf._68_4_;\nLAB_00046fe4:\n  do {\n    rt_buf._68_4_ = ppcVar3;\n    if (*ppcVar13 == (char *)0x0) {\n      if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }\n      uVar11 = rt_buf._52_2_;\n      if (rt_buf._40_4_ != 0) {\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (action == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n      (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);\n      while (iVar4 != *(int *)puVar2) {\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar7 = (*pcVar21)(puVar19,&local_94);\n    uVar22 = CONCAT44(uVar7,local_94);\n    if ((uVar7 & 0x20) == 0) {\n      ppcVar20 = (char **)local_94[-1];\n      if (uVar7 != 0x10) {\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      sVar12 = (*(code *)puVar1)(ppcVar20);\n      rt_buf._64_2_ = sVar12 + 1;\n      ppcVar13 = local_94;\n      ppcVar3 = (char **)rt_buf._68_4_;\n      goto LAB_00046fe4;\n    }\n    rt_buf._52_2_ = *(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_;\n    ppcVar13 = local_94;\n    ppcVar3 = (char **)rt_buf._68_4_;\n  } while( true );\n}" primitive_type (function_declarator "INET_setroute(int action,char **args)" identifier (parameter_list "(int action,char **args)" ( (parameter_declaration "int action" primitive_type identifier) , (parameter_declaration "char **args" primitive_type (pointer_declarator "**args" * (pointer_declarator "*args" * identifier))) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  char **ppcVar3;\n  int iVar4;\n  undefined *puVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  ushort uVar11;\n  undefined4 uVar8;\n  short sVar12;\n  int iVar9;\n  undefined1 *puVar10;\n  char **ppcVar13;\n  char **ppcVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  char **ppcVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  char **ppcVar20;\n  code *pcVar21;\n  undefined8 uVar22;\n  char **local_94;\n  sockaddr mask;\n  char rt_buf [84];\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar21 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  iVar4 = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = args;\n  puVar5 = (undefined *)\n           kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5e60,&local_94);\n  ppcVar17 = local_94;\n  if (*local_94 != (char *)0x0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_bb_show_usage_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(rt_buf,0,0x54);\n  local_94 = ppcVar17 + 1;\n  pcVar16 = *ppcVar17;\n  puVar6 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(pcVar16,0x2f);\n  pcVar18 = (code *)PTR_INET_resolve_0012a540;\n  if (puVar6 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar7 = (*(code *)PTR_xatoul_range_0012a3ec)(puVar6 + 1,0,0x20);\n  rt_buf._40_4_ = ~(0xffffffffU >> (uVar7 & 0x1f));\n  *puVar6 = 0;\n  rt_buf[0x24] = '\0';\n  rt_buf[0x25] = '\x02';\n  uVar7 = (*pcVar18)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n  if ((int)uVar7 < 0) {\n    do {\n      (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16);\nLAB_00046f8c:\n      pcVar18 = (code *)PTR_INET_resolve_0012a540;\n      uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n    } while ((int)uVar7 < 0);\n    ppcVar17 = (char **)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    ppcVar17 = (char **)0x0;\n    *puVar6 = 0x2f;\n  }\n  puVar1 = PTR_xatoul_0012a3a4;\n  if (puVar5 != (undefined *)0x0) {\n    uVar7 = (uint)puVar5 & 1;\n  }\n  rt_buf[0x34] = '\0';\n  rt_buf[0x35] = '\x05';\n  if (uVar7 != 0) {\n    rt_buf[0x34] = '\0';\n    rt_buf[0x35] = '\x01';\n  }\n  puVar19 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5df8;\n  puVar5 = PTR_UINT_0012a18c + 0x4218;\n  ppcVar13 = local_94;\n  ppcVar3 = (char **)rt_buf._68_4_;\nLAB_00046fe4:\n  do {\n    rt_buf._68_4_ = ppcVar3;\n    if (*ppcVar13 == (char *)0x0) {\n      if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }\n      uVar11 = rt_buf._52_2_;\n      if (rt_buf._40_4_ != 0) {\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (action == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n      (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);\n      while (iVar4 != *(int *)puVar2) {\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar7 = (*pcVar21)(puVar19,&local_94);\n    uVar22 = CONCAT44(uVar7,local_94);\n    if ((uVar7 & 0x20) == 0) {\n      ppcVar20 = (char **)local_94[-1];\n      if (uVar7 != 0x10) {\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      sVar12 = (*(code *)puVar1)(ppcVar20);\n      rt_buf._64_2_ = sVar12 + 1;\n      ppcVar13 = local_94;\n      ppcVar3 = (char **)rt_buf._68_4_;\n      goto LAB_00046fe4;\n    }\n    rt_buf._52_2_ = *(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_;\n    ppcVar13 = local_94;\n    ppcVar3 = (char **)rt_buf._68_4_;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char **ppcVar3;" primitive_type (pointer_declarator "**ppcVar3" * (pointer_declarator "*ppcVar3" * identifier)) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "ushort uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "short sVar12;" (sized_type_specifier "short" short) identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char **ppcVar13;" primitive_type (pointer_declarator "**ppcVar13" * (pointer_declarator "*ppcVar13" * identifier)) ;) (declaration "char **ppcVar14;" primitive_type (pointer_declarator "**ppcVar14" * (pointer_declarator "*ppcVar14" * identifier)) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "char **ppcVar17;" primitive_type (pointer_declarator "**ppcVar17" * (pointer_declarator "*ppcVar17" * identifier)) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "char **ppcVar20;" primitive_type (pointer_declarator "**ppcVar20" * (pointer_declarator "*ppcVar20" * identifier)) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "undefined8 uVar22;" type_identifier identifier ;) (declaration "char **local_94;" primitive_type (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier)) ;) (declaration "sockaddr mask;" type_identifier identifier ;) (declaration "char rt_buf [84];" primitive_type (array_declarator "rt_buf [84]" identifier [ number_literal ]) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "pcVar21 = (code *)(PTR_LAB_0012a49c + 0x64d0);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0012a49c + 0x64d0)" identifier = (cast_expression "(code *)(PTR_LAB_0012a49c + 0x64d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0012a49c + 0x64d0)" ( (binary_expression "PTR_LAB_0012a49c + 0x64d0" identifier + number_literal) )))) ;) (expression_statement "iVar4 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "iVar4 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_94 = args;" (assignment_expression "local_94 = args" identifier = identifier) ;) (expression_statement "puVar5 = (undefined *)\n           kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5e60,&local_94);" (comma_expression "puVar5 = (undefined *)\n           kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5e60,&local_94" (assignment_expression "puVar5 = (undefined *)\n           kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5e60" identifier = (binary_expression "(undefined *)\n           kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5e60" (cast_expression "(undefined *)\n           kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "kw_lookup(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)" identifier (argument_list "(PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)" ( (binary_expression "PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" (binary_expression "PTR_s_<_W_q_v1_HxLJ_" identifier < identifier) & identifier) )))) (ERROR "9__f_l_0012a1a8" number_literal identifier) + number_literal)) , (pointer_expression "&local_94" & identifier)) (ERROR ")" )) ;) (expression_statement "ppcVar17 = local_94;" (assignment_expression "ppcVar17 = local_94" identifier = identifier) ;) (if_statement "if (*local_94 != (char *)0x0) goto LAB_00046ee0;" if (parenthesized_expression "(*local_94 != (char *)0x0)" ( (binary_expression "*local_94 != (char *)0x0" (pointer_expression "*local_94" * identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00046ee0;" goto statement_identifier ;)) (labeled_statement "LAB_00046ed4:\n  (*(code *)PTR_bb_show_usage_0012a1dc)();" statement_identifier : (expression_statement "(*(code *)PTR_bb_show_usage_0012a1dc)();" (call_expression "(*(code *)PTR_bb_show_usage_0012a1dc)()" (parenthesized_expression "(*(code *)PTR_bb_show_usage_0012a1dc)" ( (pointer_expression "*(code *)PTR_bb_show_usage_0012a1dc" * (cast_expression "(code *)PTR_bb_show_usage_0012a1dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(rt_buf,0,0x54);" statement_identifier : (expression_statement "(*(code *)PTR_memset_0012aebc)(rt_buf,0,0x54);" (call_expression "(*(code *)PTR_memset_0012aebc)(rt_buf,0,0x54)" (parenthesized_expression "(*(code *)PTR_memset_0012aebc)" ( (pointer_expression "*(code *)PTR_memset_0012aebc" * (cast_expression "(code *)PTR_memset_0012aebc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rt_buf,0,0x54)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "local_94 = ppcVar17 + 1;" (assignment_expression "local_94 = ppcVar17 + 1" identifier = (binary_expression "ppcVar17 + 1" identifier + number_literal)) ;) (expression_statement "pcVar16 = *ppcVar17;" (assignment_expression "pcVar16 = *ppcVar17" identifier = (pointer_expression "*ppcVar17" * identifier)) ;) (expression_statement "puVar6 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(pcVar16,0x2f);" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(pcVar16,0x2f)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_strchr_0012af54)(pcVar16,0x2f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strchr_0012af54)(pcVar16,0x2f)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar16,0x2f)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar18 = (code *)PTR_INET_resolve_0012a540;" (assignment_expression "pcVar18 = (code *)PTR_INET_resolve_0012a540" identifier = (cast_expression "(code *)PTR_INET_resolve_0012a540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (puVar6 == (undefined1 *)0x0) goto LAB_00046f8c;" if (parenthesized_expression "(puVar6 == (undefined1 *)0x0)" ( (binary_expression "puVar6 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00046f8c;" goto statement_identifier ;)) (expression_statement "uVar7 = (*(code *)PTR_xatoul_range_0012a3ec)(puVar6 + 1,0,0x20);" (assignment_expression "uVar7 = (*(code *)PTR_xatoul_range_0012a3ec)(puVar6 + 1,0,0x20)" identifier = (call_expression "(*(code *)PTR_xatoul_range_0012a3ec)(puVar6 + 1,0,0x20)" (parenthesized_expression "(*(code *)PTR_xatoul_range_0012a3ec)" ( (pointer_expression "*(code *)PTR_xatoul_range_0012a3ec" * (cast_expression "(code *)PTR_xatoul_range_0012a3ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6 + 1,0,0x20)" ( (binary_expression "puVar6 + 1" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "rt_buf._40_4_ = ~(0xffffffffU >> (uVar7 & 0x1f));" (assignment_expression "rt_buf._40_4_ = ~(0xffffffffU >> (uVar7 & 0x1f))" (field_expression "rt_buf._40_4_" identifier . field_identifier) = (unary_expression "~(0xffffffffU >> (uVar7 & 0x1f))" ~ (parenthesized_expression "(0xffffffffU >> (uVar7 & 0x1f))" ( (binary_expression "0xffffffffU >> (uVar7 & 0x1f)" number_literal >> (parenthesized_expression "(uVar7 & 0x1f)" ( (binary_expression "uVar7 & 0x1f" identifier & number_literal) ))) )))) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "rt_buf[0x24] = '\0';" (assignment_expression "rt_buf[0x24] = '\0'" (subscript_expression "rt_buf[0x24]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "rt_buf[0x25] = '\x02';" (assignment_expression "rt_buf[0x25] = '\x02'" (subscript_expression "rt_buf[0x25]" identifier [ number_literal ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "uVar7 = (*pcVar18)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);" (assignment_expression "uVar7 = (*pcVar18)(pcVar16,rt_buf + 4,(uint)puVar5 & 2)" identifier = (call_expression "(*pcVar18)(pcVar16,rt_buf + 4,(uint)puVar5 & 2)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(pcVar16,rt_buf + 4,(uint)puVar5 & 2)" ( identifier , (binary_expression "rt_buf + 4" identifier + number_literal) , (binary_expression "(uint)puVar5 & 2" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((int)uVar7 < 0) {\n    do {\n      (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16);\nLAB_00046f8c:\n      pcVar18 = (code *)PTR_INET_resolve_0012a540;\n      uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n    } while ((int)uVar7 < 0);\n    ppcVar17 = (char **)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    ppcVar17 = (char **)0x0;\n    *puVar6 = 0x2f;\n  }" if (parenthesized_expression "((int)uVar7 < 0)" ( (binary_expression "(int)uVar7 < 0" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    do {\n      (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16);\nLAB_00046f8c:\n      pcVar18 = (code *)PTR_INET_resolve_0012a540;\n      uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n    } while ((int)uVar7 < 0);\n    ppcVar17 = (char **)(PTR_UINT_0012a18c + 0x2bbc);\n  }" { (do_statement "do {\n      (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16);\nLAB_00046f8c:\n      pcVar18 = (code *)PTR_INET_resolve_0012a540;\n      uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n    } while ((int)uVar7 < 0);" do (compound_statement "{\n      (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16);\nLAB_00046f8c:\n      pcVar18 = (code *)PTR_INET_resolve_0012a540;\n      uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);\n    }" { (expression_statement "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16);" (call_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4038,pcVar16)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)" ( (pointer_expression "*(code *)PTR_bb_error_msg_and_die_0012a1e4" * (cast_expression "(code *)PTR_bb_error_msg_and_die_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x4038,pcVar16)" ( (binary_expression "PTR_UINT_0012a18c + 0x4038" identifier + number_literal) , identifier ))) ;) (labeled_statement "LAB_00046f8c:\n      pcVar18 = (code *)PTR_INET_resolve_0012a540;" statement_identifier : (expression_statement "pcVar18 = (code *)PTR_INET_resolve_0012a540;" (assignment_expression "pcVar18 = (code *)PTR_INET_resolve_0012a540" identifier = (cast_expression "(code *)PTR_INET_resolve_0012a540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2);" (assignment_expression "uVar7 = (*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2)" identifier = (call_expression "(*(code *)PTR_INET_resolve_0012a540)(pcVar16,rt_buf + 4,(uint)puVar5 & 2)" (parenthesized_expression "(*(code *)PTR_INET_resolve_0012a540)" ( (pointer_expression "*(code *)PTR_INET_resolve_0012a540" * (cast_expression "(code *)PTR_INET_resolve_0012a540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar16,rt_buf + 4,(uint)puVar5 & 2)" ( identifier , (binary_expression "rt_buf + 4" identifier + number_literal) , (binary_expression "(uint)puVar5 & 2" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) }) while (parenthesized_expression "((int)uVar7 < 0)" ( (binary_expression "(int)uVar7 < 0" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) ;) (expression_statement "ppcVar17 = (char **)(PTR_UINT_0012a18c + 0x2bbc);" (assignment_expression "ppcVar17 = (char **)(PTR_UINT_0012a18c + 0x2bbc)" identifier = (cast_expression "(char **)(PTR_UINT_0012a18c + 0x2bbc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_UINT_0012a18c + 0x2bbc)" ( (binary_expression "PTR_UINT_0012a18c + 0x2bbc" identifier + number_literal) )))) ;) }) (else_clause "else {\n    ppcVar17 = (char **)0x0;\n    *puVar6 = 0x2f;\n  }" else (compound_statement "{\n    ppcVar17 = (char **)0x0;\n    *puVar6 = 0x2f;\n  }" { (expression_statement "ppcVar17 = (char **)0x0;" (assignment_expression "ppcVar17 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*puVar6 = 0x2f;" (assignment_expression "*puVar6 = 0x2f" (pointer_expression "*puVar6" * identifier) = number_literal) ;) }))) (expression_statement "puVar1 = PTR_xatoul_0012a3a4;" (assignment_expression "puVar1 = PTR_xatoul_0012a3a4" identifier = identifier) ;) (if_statement "if (puVar5 != (undefined *)0x0) {\n    uVar7 = (uint)puVar5 & 1;\n  }" if (parenthesized_expression "(puVar5 != (undefined *)0x0)" ( (binary_expression "puVar5 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = (uint)puVar5 & 1;\n  }" { (expression_statement "uVar7 = (uint)puVar5 & 1;" (assignment_expression "uVar7 = (uint)puVar5 & 1" identifier = (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) })) (expression_statement "rt_buf[0x34] = '\0';" (assignment_expression "rt_buf[0x34] = '\0'" (subscript_expression "rt_buf[0x34]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "rt_buf[0x35] = '\x05';" (assignment_expression "rt_buf[0x35] = '\x05'" (subscript_expression "rt_buf[0x35]" identifier [ number_literal ]) = (char_literal "'\x05'" ' escape_sequence ')) ;) (if_statement "if (uVar7 != 0) {\n    rt_buf[0x34] = '\0';\n    rt_buf[0x35] = '\x01';\n  }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    rt_buf[0x34] = '\0';\n    rt_buf[0x35] = '\x01';\n  }" { (expression_statement "rt_buf[0x34] = '\0';" (assignment_expression "rt_buf[0x34] = '\0'" (subscript_expression "rt_buf[0x34]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "rt_buf[0x35] = '\x01';" (assignment_expression "rt_buf[0x35] = '\x01'" (subscript_expression "rt_buf[0x35]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (expression_statement "puVar19 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5df8;" (binary_expression "puVar19 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + 0x5df8" (assignment_expression "puVar19 = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" identifier = (binary_expression "PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" (binary_expression "PTR_s_<_W_q_v1_HxLJ_" identifier < identifier) & identifier)) (ERROR ")9__f_l_0012a1a8" ) number_literal identifier) + number_literal) ;) (expression_statement "puVar5 = PTR_UINT_0012a18c + 0x4218;" (assignment_expression "puVar5 = PTR_UINT_0012a18c + 0x4218" identifier = (binary_expression "PTR_UINT_0012a18c + 0x4218" identifier + number_literal)) ;) (expression_statement "ppcVar13 = local_94;" (assignment_expression "ppcVar13 = local_94" identifier = identifier) ;) (expression_statement "ppcVar3 = (char **)rt_buf._68_4_;" (assignment_expression "ppcVar3 = (char **)rt_buf._68_4_" identifier = (cast_expression "(char **)rt_buf._68_4_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rt_buf._68_4_" identifier . field_identifier))) ;) (labeled_statement "LAB_00046fe4:\n  do {\n    rt_buf._68_4_ = ppcVar3;\n    if (*ppcVar13 == (char *)0x0) {\n      if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }\n      uVar11 = rt_buf._52_2_;\n      if (rt_buf._40_4_ != 0) {\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (action == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n      (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);\n      while (iVar4 != *(int *)puVar2) {\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar7 = (*pcVar21)(puVar19,&local_94);\n    uVar22 = CONCAT44(uVar7,local_94);\n    if ((uVar7 & 0x20) == 0) {\n      ppcVar20 = (char **)local_94[-1];\n      if (uVar7 != 0x10) {\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      sVar12 = (*(code *)puVar1)(ppcVar20);\n      rt_buf._64_2_ = sVar12 + 1;\n      ppcVar13 = local_94;\n      ppcVar3 = (char **)rt_buf._68_4_;\n      goto LAB_00046fe4;\n    }\n    rt_buf._52_2_ = *(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_;\n    ppcVar13 = local_94;\n    ppcVar3 = (char **)rt_buf._68_4_;\n  } while( true );" statement_identifier : (do_statement "do {\n    rt_buf._68_4_ = ppcVar3;\n    if (*ppcVar13 == (char *)0x0) {\n      if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }\n      uVar11 = rt_buf._52_2_;\n      if (rt_buf._40_4_ != 0) {\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (action == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n      (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);\n      while (iVar4 != *(int *)puVar2) {\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar7 = (*pcVar21)(puVar19,&local_94);\n    uVar22 = CONCAT44(uVar7,local_94);\n    if ((uVar7 & 0x20) == 0) {\n      ppcVar20 = (char **)local_94[-1];\n      if (uVar7 != 0x10) {\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      sVar12 = (*(code *)puVar1)(ppcVar20);\n      rt_buf._64_2_ = sVar12 + 1;\n      ppcVar13 = local_94;\n      ppcVar3 = (char **)rt_buf._68_4_;\n      goto LAB_00046fe4;\n    }\n    rt_buf._52_2_ = *(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_;\n    ppcVar13 = local_94;\n    ppcVar3 = (char **)rt_buf._68_4_;\n  } while( true );" do (compound_statement "{\n    rt_buf._68_4_ = ppcVar3;\n    if (*ppcVar13 == (char *)0x0) {\n      if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }\n      uVar11 = rt_buf._52_2_;\n      if (rt_buf._40_4_ != 0) {\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (action == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n      (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);\n      while (iVar4 != *(int *)puVar2) {\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar7 = (*pcVar21)(puVar19,&local_94);\n    uVar22 = CONCAT44(uVar7,local_94);\n    if ((uVar7 & 0x20) == 0) {\n      ppcVar20 = (char **)local_94[-1];\n      if (uVar7 != 0x10) {\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      sVar12 = (*(code *)puVar1)(ppcVar20);\n      rt_buf._64_2_ = sVar12 + 1;\n      ppcVar13 = local_94;\n      ppcVar3 = (char **)rt_buf._68_4_;\n      goto LAB_00046fe4;\n    }\n    rt_buf._52_2_ = *(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_;\n    ppcVar13 = local_94;\n    ppcVar3 = (char **)rt_buf._68_4_;\n  }" { (expression_statement "rt_buf._68_4_ = ppcVar3;" (assignment_expression "rt_buf._68_4_ = ppcVar3" (field_expression "rt_buf._68_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (*ppcVar13 == (char *)0x0) {\n      if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }\n      uVar11 = rt_buf._52_2_;\n      if (rt_buf._40_4_ != 0) {\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (action == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n      (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);\n      while (iVar4 != *(int *)puVar2) {\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }" if (parenthesized_expression "(*ppcVar13 == (char *)0x0)" ( (binary_expression "*ppcVar13 == (char *)0x0" (pointer_expression "*ppcVar13" * identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }\n      uVar11 = rt_buf._52_2_;\n      if (rt_buf._40_4_ != 0) {\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (action == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n      (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);\n      while (iVar4 != *(int *)puVar2) {\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }" { (if_statement "if (((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)) {\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }" if (parenthesized_expression "(((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0))" ( (binary_expression "((rt_buf._52_2_ & 0x200) != 0) && (rt_buf._68_4_ == 0)" (parenthesized_expression "((rt_buf._52_2_ & 0x200) != 0)" ( (binary_expression "(rt_buf._52_2_ & 0x200) != 0" (parenthesized_expression "(rt_buf._52_2_ & 0x200)" ( (binary_expression "rt_buf._52_2_ & 0x200" (field_expression "rt_buf._52_2_" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(rt_buf._68_4_ == 0)" ( (binary_expression "rt_buf._68_4_ == 0" (field_expression "rt_buf._68_4_" identifier . field_identifier) == number_literal) ))) )) (compound_statement "{\n        rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;\n      }" { (expression_statement "rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0;" (binary_expression "rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P)9__f_l_0012a1a8 + -0x56d0" (assignment_expression "rt_buf._68_4_ = PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" (field_expression "rt_buf._68_4_" identifier . field_identifier) = (binary_expression "PTR_s_<_W_q_v1_HxLJ_&uD_sa_____P" (binary_expression "PTR_s_<_W_q_v1_HxLJ_" identifier < identifier) & identifier)) (ERROR ")9__f_l_0012a1a8" ) number_literal identifier) + number_literal) ;) })) (expression_statement "uVar11 = rt_buf._52_2_;" (assignment_expression "uVar11 = rt_buf._52_2_" identifier = (field_expression "rt_buf._52_2_" identifier . field_identifier)) ;) (if_statement "if (rt_buf._40_4_ != 0) {\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }" if (parenthesized_expression "(rt_buf._40_4_ != 0)" ( (binary_expression "rt_buf._40_4_ != 0" (field_expression "rt_buf._40_4_" identifier . field_identifier) != number_literal) )) (compound_statement "{\n        if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }" { (if_statement "if ((rt_buf._52_2_ & 4) == 0) {\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }" if (parenthesized_expression "((rt_buf._52_2_ & 4) == 0)" ( (binary_expression "(rt_buf._52_2_ & 4) == 0" (parenthesized_expression "(rt_buf._52_2_ & 4)" ( (binary_expression "rt_buf._52_2_ & 4" (field_expression "rt_buf._52_2_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          ppcVar13 = (char **)~rt_buf._40_4_;\n          if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }\n          if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (action == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }" { (expression_statement "ppcVar13 = (char **)~rt_buf._40_4_;" (assignment_expression "ppcVar13 = (char **)~rt_buf._40_4_" identifier = (cast_expression "(char **)~rt_buf._40_4_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (unary_expression "~rt_buf._40_4_" ~ (field_expression "rt_buf._40_4_" identifier . field_identifier)))) ;) (if_statement "if ((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }" if (parenthesized_expression "((-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0)" ( (binary_expression "(-rt_buf._40_4_ & (uint)~rt_buf._40_4_) != 0" (parenthesized_expression "(-rt_buf._40_4_ & (uint)~rt_buf._40_4_)" ( (binary_expression "-rt_buf._40_4_ & (uint)~rt_buf._40_4_" (unary_expression "-rt_buf._40_4_" - (field_expression "rt_buf._40_4_" identifier . field_identifier)) & (cast_expression "(uint)~rt_buf._40_4_" ( (type_descriptor "uint" type_identifier) ) (unary_expression "~rt_buf._40_4_" ~ (field_expression "rt_buf._40_4_" identifier . field_identifier)))) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            ppcVar13 = ppcVar17;\n          }" { (expression_statement "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);" (call_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40a0)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)" ( (pointer_expression "*(code *)PTR_bb_error_msg_and_die_0012a1e4" * (cast_expression "(code *)PTR_bb_error_msg_and_die_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x40a0)" ( (binary_expression "PTR_UINT_0012a18c + 0x40a0" identifier + number_literal) ))) ;) (expression_statement "ppcVar13 = ppcVar17;" (assignment_expression "ppcVar13 = ppcVar17" identifier = identifier) ;) })) (if_statement "if (((uint)ppcVar13 & rt_buf._8_4_) != 0) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }" if (parenthesized_expression "(((uint)ppcVar13 & rt_buf._8_4_) != 0)" ( (binary_expression "((uint)ppcVar13 & rt_buf._8_4_) != 0" (parenthesized_expression "((uint)ppcVar13 & rt_buf._8_4_)" ( (binary_expression "(uint)ppcVar13 & rt_buf._8_4_" (cast_expression "(uint)ppcVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & (field_expression "rt_buf._8_4_" identifier . field_identifier)) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }" { (expression_statement "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);" (call_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x40b4)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)" ( (pointer_expression "*(code *)PTR_bb_error_msg_and_die_0012a1e4" * (cast_expression "(code *)PTR_bb_error_msg_and_die_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x40b4)" ( (binary_expression "PTR_UINT_0012a18c + 0x40b4" identifier + number_literal) ))) ;) })) (if_statement "if (action == 1) goto LAB_0004710c;" if (parenthesized_expression "(action == 1)" ( (binary_expression "action == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004710c;" goto statement_identifier ;)) (goto_statement "goto LAB_00047084;" goto statement_identifier ;) })) (expression_statement "uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078);" (assignment_expression "uVar11 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078)" identifier = (call_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4078)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)" ( (pointer_expression "*(code *)PTR_bb_error_msg_and_die_0012a1e4" * (cast_expression "(code *)PTR_bb_error_msg_and_die_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x4078)" ( (binary_expression "PTR_UINT_0012a18c + 0x4078" identifier + number_literal) )))) ;) })) (if_statement "if (action == 1) goto LAB_000470fc;" if (parenthesized_expression "(action == 1)" ( (binary_expression "action == 1" identifier == number_literal) )) (goto_statement "goto LAB_000470fc;" goto statement_identifier ;)) (labeled_statement "LAB_00047084:\n      uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);" statement_identifier : (expression_statement "uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);" (assignment_expression "uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0)" identifier = (call_expression "(*(code *)PTR_xsocket_0012a490)(2,1,0)" (parenthesized_expression "(*(code *)PTR_xsocket_0012a490)" ( (pointer_expression "*(code *)PTR_xsocket_0012a490" * (cast_expression "(code *)PTR_xsocket_0012a490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal )))) ;)) (expression_statement "(*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054);" (call_expression "(*(code *)PTR_bb_xioctl_0012a40c)(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054)" (parenthesized_expression "(*(code *)PTR_bb_xioctl_0012a40c)" ( (pointer_expression "*(code *)PTR_bb_xioctl_0012a40c" * (cast_expression "(code *)PTR_bb_xioctl_0012a40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,&DAT_0000890c,rt_buf,PTR_UINT_0012a18c + 0x4054)" ( identifier , (pointer_expression "&DAT_0000890c" & identifier) , identifier , (binary_expression "PTR_UINT_0012a18c + 0x4054" identifier + number_literal) ))) ;) (while_statement "while (iVar4 != *(int *)puVar2) {\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }" while (parenthesized_expression "(iVar4 != *(int *)puVar2)" ( (binary_expression "iVar4 != *(int *)puVar2" identifier != (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }\nLAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);\n        (*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);\n      }" { (expression_statement "uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar11 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_000470fc:\n        if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }" statement_identifier : (if_statement "if ((uVar11 & 4) != 0) {\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }" if (parenthesized_expression "((uVar11 & 4) != 0)" ( (binary_expression "(uVar11 & 4) != 0" (parenthesized_expression "(uVar11 & 4)" ( (binary_expression "uVar11 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          rt_buf[0x28] = -1;\n          rt_buf[0x29] = -1;\n          rt_buf[0x2a] = -1;\n          rt_buf[0x2b] = -1;\n        }" { (expression_statement "rt_buf[0x28] = -1;" (assignment_expression "rt_buf[0x28] = -1" (subscript_expression "rt_buf[0x28]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "rt_buf[0x29] = -1;" (assignment_expression "rt_buf[0x29] = -1" (subscript_expression "rt_buf[0x29]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "rt_buf[0x2a] = -1;" (assignment_expression "rt_buf[0x2a] = -1" (subscript_expression "rt_buf[0x2a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "rt_buf[0x2b] = -1;" (assignment_expression "rt_buf[0x2b] = -1" (subscript_expression "rt_buf[0x2b]" identifier [ number_literal ]) = number_literal) ;) }))) (labeled_statement "LAB_0004710c:\n        uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);" statement_identifier : (expression_statement "uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0);" (assignment_expression "uVar8 = (*(code *)PTR_xsocket_0012a490)(2,1,0)" identifier = (call_expression "(*(code *)PTR_xsocket_0012a490)(2,1,0)" (parenthesized_expression "(*(code *)PTR_xsocket_0012a490)" ( (pointer_expression "*(code *)PTR_xsocket_0012a490" * (cast_expression "(code *)PTR_xsocket_0012a490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal )))) ;)) (expression_statement "(*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048);" (call_expression "(*(code *)PTR_bb_xioctl_0012a40c)(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048)" (parenthesized_expression "(*(code *)PTR_bb_xioctl_0012a40c)" ( (pointer_expression "*(code *)PTR_bb_xioctl_0012a40c" * (cast_expression "(code *)PTR_bb_xioctl_0012a40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,0x890b,rt_buf,PTR_UINT_0012a18c + 0x4048)" ( identifier , number_literal , identifier , (binary_expression "PTR_UINT_0012a18c + 0x4048" identifier + number_literal) ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "uVar7 = (*pcVar21)(puVar19,&local_94);" (assignment_expression "uVar7 = (*pcVar21)(puVar19,&local_94)" identifier = (call_expression "(*pcVar21)(puVar19,&local_94)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(puVar19,&local_94)" ( identifier , (pointer_expression "&local_94" & identifier) )))) ;) (expression_statement "uVar22 = CONCAT44(uVar7,local_94);" (assignment_expression "uVar22 = CONCAT44(uVar7,local_94)" identifier = (call_expression "CONCAT44(uVar7,local_94)" identifier (argument_list "(uVar7,local_94)" ( identifier , identifier )))) ;) (if_statement "if ((uVar7 & 0x20) == 0) {\n      ppcVar20 = (char **)local_94[-1];\n      if (uVar7 != 0x10) {\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      sVar12 = (*(code *)puVar1)(ppcVar20);\n      rt_buf._64_2_ = sVar12 + 1;\n      ppcVar13 = local_94;\n      ppcVar3 = (char **)rt_buf._68_4_;\n      goto LAB_00046fe4;\n    }" if (parenthesized_expression "((uVar7 & 0x20) == 0)" ( (binary_expression "(uVar7 & 0x20) == 0" (parenthesized_expression "(uVar7 & 0x20)" ( (binary_expression "uVar7 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      ppcVar20 = (char **)local_94[-1];\n      if (uVar7 != 0x10) {\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      sVar12 = (*(code *)puVar1)(ppcVar20);\n      rt_buf._64_2_ = sVar12 + 1;\n      ppcVar13 = local_94;\n      ppcVar3 = (char **)rt_buf._68_4_;\n      goto LAB_00046fe4;\n    }" { (expression_statement "ppcVar20 = (char **)local_94[-1];" (assignment_expression "ppcVar20 = (char **)local_94[-1]" identifier = (cast_expression "(char **)local_94[-1]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_94[-1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar7 != 0x10) {\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }" if (parenthesized_expression "(uVar7 != 0x10)" ( (binary_expression "uVar7 != 0x10" identifier != number_literal) )) (compound_statement "{\n        puVar15 = (undefined *)0x12;\n        if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar6 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }\n        puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);\n        ppcVar14 = (char **)uVar22;\n        if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }\n        goto LAB_00046fe4;\n      }" { (expression_statement "puVar15 = (undefined *)0x12;" (assignment_expression "puVar15 = (undefined *)0x12" identifier = (cast_expression "(undefined *)0x12" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar7 == 0x11) {\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }" if (parenthesized_expression "(uVar7 == 0x11)" ( (binary_expression "uVar7 == 0x11" identifier == number_literal) )) (compound_statement "{\n          if (rt_buf._40_4_ != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,&mask,0);\n          if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;\n          rt_buf[0x26] = mask.sa_data[0];\n          rt_buf[0x27] = mask.sa_data[1];\n          rt_buf[0x28] = mask.sa_data[2];\n          rt_buf[0x29] = mask.sa_data[3];\n          rt_buf[0x2a] = mask.sa_data[4];\n          rt_buf[0x2b] = mask.sa_data[5];\n          ppcVar13 = local_94;\n          ppcVar17 = ppcVar20;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          goto LAB_00046fe4;\n        }" { (if_statement "if (rt_buf._40_4_ != 0) goto LAB_00046ed4;" if (parenthesized_expression "(rt_buf._40_4_ != 0)" ( (binary_expression "rt_buf._40_4_ != 0" (field_expression "rt_buf._40_4_" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "iVar9 = (*pcVar18)(ppcVar20,&mask,0);" (assignment_expression "iVar9 = (*pcVar18)(ppcVar20,&mask,0)" identifier = (call_expression "(*pcVar18)(ppcVar20,&mask,0)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(ppcVar20,&mask,0)" ( identifier , (pointer_expression "&mask" & identifier) , number_literal )))) ;) (if_statement "if (iVar9 < 0) {\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n            puVar15 = PTR_UINT_0012a18c + 0x4038;\n            uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);\n            goto LAB_00047208;\n          }" { (expression_statement "puVar15 = PTR_UINT_0012a18c + 0x4038;" (assignment_expression "puVar15 = PTR_UINT_0012a18c + 0x4038" identifier = (binary_expression "PTR_UINT_0012a18c + 0x4038" identifier + number_literal)) ;) (expression_statement "uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20);" (assignment_expression "uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20)" identifier = (call_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(puVar15,ppcVar20)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)" ( (pointer_expression "*(code *)PTR_bb_error_msg_and_die_0012a1e4" * (cast_expression "(code *)PTR_bb_error_msg_and_die_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar15,ppcVar20)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00047208;" goto statement_identifier ;) })) (labeled_statement "LAB_00047380:\n          rt_buf._36_2_ = mask.sa_family;" statement_identifier : (expression_statement "rt_buf._36_2_ = mask.sa_family;" (assignment_expression "rt_buf._36_2_ = mask.sa_family" (field_expression "rt_buf._36_2_" identifier . field_identifier) = (field_expression "mask.sa_family" identifier . field_identifier)) ;)) (expression_statement "rt_buf[0x26] = mask.sa_data[0];" (assignment_expression "rt_buf[0x26] = mask.sa_data[0]" (subscript_expression "rt_buf[0x26]" identifier [ number_literal ]) = (subscript_expression "mask.sa_data[0]" (field_expression "mask.sa_data" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "rt_buf[0x27] = mask.sa_data[1];" (assignment_expression "rt_buf[0x27] = mask.sa_data[1]" (subscript_expression "rt_buf[0x27]" identifier [ number_literal ]) = (subscript_expression "mask.sa_data[1]" (field_expression "mask.sa_data" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "rt_buf[0x28] = mask.sa_data[2];" (assignment_expression "rt_buf[0x28] = mask.sa_data[2]" (subscript_expression "rt_buf[0x28]" identifier [ number_literal ]) = (subscript_expression "mask.sa_data[2]" (field_expression "mask.sa_data" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "rt_buf[0x29] = mask.sa_data[3];" (assignment_expression "rt_buf[0x29] = mask.sa_data[3]" (subscript_expression "rt_buf[0x29]" identifier [ number_literal ]) = (subscript_expression "mask.sa_data[3]" (field_expression "mask.sa_data" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "rt_buf[0x2a] = mask.sa_data[4];" (assignment_expression "rt_buf[0x2a] = mask.sa_data[4]" (subscript_expression "rt_buf[0x2a]" identifier [ number_literal ]) = (subscript_expression "mask.sa_data[4]" (field_expression "mask.sa_data" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "rt_buf[0x2b] = mask.sa_data[5];" (assignment_expression "rt_buf[0x2b] = mask.sa_data[5]" (subscript_expression "rt_buf[0x2b]" identifier [ number_literal ]) = (subscript_expression "mask.sa_data[5]" (field_expression "mask.sa_data" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "ppcVar13 = local_94;" (assignment_expression "ppcVar13 = local_94" identifier = identifier) ;) (expression_statement "ppcVar17 = ppcVar20;" (assignment_expression "ppcVar17 = ppcVar20" identifier = identifier) ;) (expression_statement "ppcVar3 = (char **)rt_buf._68_4_;" (assignment_expression "ppcVar3 = (char **)rt_buf._68_4_" identifier = (cast_expression "(char **)rt_buf._68_4_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rt_buf._68_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;) })) (labeled_statement "LAB_00047208:\n        puVar6 = (undefined1 *)0x13;" statement_identifier : (expression_statement "puVar6 = (undefined1 *)0x13;" (assignment_expression "puVar6 = (undefined1 *)0x13" identifier = (cast_expression "(undefined1 *)0x13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if ((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15) {\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }" if (parenthesized_expression "((undefined *)((ulonglong)uVar22 >> 0x20) == puVar15)" ( (binary_expression "(undefined *)((ulonglong)uVar22 >> 0x20) == puVar15" (cast_expression "(undefined *)((ulonglong)uVar22 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar22 >> 0x20)" ( (binary_expression "(ulonglong)uVar22 >> 0x20" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == identifier) )) (compound_statement "{\n          if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;\n          iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);\n          rt_buf._52_2_ = rt_buf._52_2_ | 2;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n          if (iVar9 == 0) goto LAB_00046fe4;\n          if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }\n          puVar6 = PTR_UINT_0012a18c + 0x4038;\n          uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();\n        }" { (if_statement "if ((rt_buf._52_2_ & 2) != 0) goto LAB_00046ed4;" if (parenthesized_expression "((rt_buf._52_2_ & 2) != 0)" ( (binary_expression "(rt_buf._52_2_ & 2) != 0" (parenthesized_expression "(rt_buf._52_2_ & 2)" ( (binary_expression "rt_buf._52_2_ & 2" (field_expression "rt_buf._52_2_" identifier . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1);" (assignment_expression "iVar9 = (*pcVar18)(ppcVar20,rt_buf + 0x14,1)" identifier = (call_expression "(*pcVar18)(ppcVar20,rt_buf + 0x14,1)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(ppcVar20,rt_buf + 0x14,1)" ( identifier , (binary_expression "rt_buf + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "rt_buf._52_2_ = rt_buf._52_2_ | 2;" (assignment_expression "rt_buf._52_2_ = rt_buf._52_2_ | 2" (field_expression "rt_buf._52_2_" identifier . field_identifier) = (binary_expression "rt_buf._52_2_ | 2" (field_expression "rt_buf._52_2_" identifier . field_identifier) | number_literal)) ;) (expression_statement "ppcVar13 = local_94;" (assignment_expression "ppcVar13 = local_94" identifier = identifier) ;) (expression_statement "ppcVar3 = (char **)rt_buf._68_4_;" (assignment_expression "ppcVar3 = (char **)rt_buf._68_4_" identifier = (cast_expression "(char **)rt_buf._68_4_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rt_buf._68_4_" identifier . field_identifier))) ;) (if_statement "if (iVar9 == 0) goto LAB_00046fe4;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;)) (if_statement "if (-1 < iVar9) {\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }" if (parenthesized_expression "(-1 < iVar9)" ( (binary_expression "-1 < iVar9" number_literal < identifier) )) (compound_statement "{\n            (*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);\n            goto LAB_00047380;\n          }" { (expression_statement "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20);" (call_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)(PTR_UINT_0012a18c + 0x4060,ppcVar20)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)" ( (pointer_expression "*(code *)PTR_bb_error_msg_and_die_0012a1e4" * (cast_expression "(code *)PTR_bb_error_msg_and_die_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x4060,ppcVar20)" ( (binary_expression "PTR_UINT_0012a18c + 0x4060" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_00047380;" goto statement_identifier ;) })) (expression_statement "puVar6 = PTR_UINT_0012a18c + 0x4038;" (assignment_expression "puVar6 = PTR_UINT_0012a18c + 0x4038" identifier = (binary_expression "PTR_UINT_0012a18c + 0x4038" identifier + number_literal)) ;) (expression_statement "uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)();" (assignment_expression "uVar22 = (*(code *)PTR_bb_error_msg_and_die_0012a1e4)()" identifier = (call_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)()" (parenthesized_expression "(*(code *)PTR_bb_error_msg_and_die_0012a1e4)" ( (pointer_expression "*(code *)PTR_bb_error_msg_and_die_0012a1e4" * (cast_expression "(code *)PTR_bb_error_msg_and_die_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) })) (expression_statement "puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20);" (assignment_expression "puVar10 = (undefined1 *)((ulonglong)uVar22 >> 0x20)" identifier = (cast_expression "(undefined1 *)((ulonglong)uVar22 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar22 >> 0x20)" ( (binary_expression "(ulonglong)uVar22 >> 0x20" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "ppcVar14 = (char **)uVar22;" (assignment_expression "ppcVar14 = (char **)uVar22" identifier = (cast_expression "(char **)uVar22" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (puVar10 == puVar6) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }" if (parenthesized_expression "(puVar10 == puVar6)" ( (binary_expression "puVar10 == puVar6" identifier == identifier) )) (compound_statement "{\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x40;\n          rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }" { (expression_statement "rt_buf._52_2_ = rt_buf._52_2_ | 0x40;" (assignment_expression "rt_buf._52_2_ = rt_buf._52_2_ | 0x40" (field_expression "rt_buf._52_2_" identifier . field_identifier) = (binary_expression "rt_buf._52_2_ | 0x40" (field_expression "rt_buf._52_2_" identifier . field_identifier) | number_literal)) ;) (expression_statement "rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000);" (assignment_expression "rt_buf._72_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000)" (field_expression "rt_buf._72_4_" identifier . field_identifier) = (call_expression "(*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x40,0x8000)" (parenthesized_expression "(*(code *)PTR_xatoul_range_0012a3ec)" ( (pointer_expression "*(code *)PTR_xatoul_range_0012a3ec" * (cast_expression "(code *)PTR_xatoul_range_0012a3ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar20,0x40,0x8000)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "ppcVar13 = local_94;" (assignment_expression "ppcVar13 = local_94" identifier = identifier) ;) (expression_statement "ppcVar3 = (char **)rt_buf._68_4_;" (assignment_expression "ppcVar3 = (char **)rt_buf._68_4_" identifier = (cast_expression "(char **)rt_buf._68_4_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rt_buf._68_4_" identifier . field_identifier))) ;) }) (else_clause "else if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }" else (if_statement "if (puVar10 == &DAT_00000014) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }" if (parenthesized_expression "(puVar10 == &DAT_00000014)" ( (binary_expression "puVar10 == &DAT_00000014" identifier == (pointer_expression "&DAT_00000014" & identifier)) )) (compound_statement "{\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x80;\n          rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }" { (expression_statement "rt_buf._52_2_ = rt_buf._52_2_ | 0x80;" (assignment_expression "rt_buf._52_2_ = rt_buf._52_2_ | 0x80" (field_expression "rt_buf._52_2_" identifier . field_identifier) = (binary_expression "rt_buf._52_2_ | 0x80" (field_expression "rt_buf._52_2_" identifier . field_identifier) | number_literal)) ;) (expression_statement "rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff);" (assignment_expression "rt_buf._76_4_ = (*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff)" (field_expression "rt_buf._76_4_" identifier . field_identifier) = (call_expression "(*(code *)PTR_xatoul_range_0012a3ec)(ppcVar20,0x80,0x7fffffff)" (parenthesized_expression "(*(code *)PTR_xatoul_range_0012a3ec)" ( (pointer_expression "*(code *)PTR_xatoul_range_0012a3ec" * (cast_expression "(code *)PTR_xatoul_range_0012a3ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar20,0x80,0x7fffffff)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "ppcVar13 = local_94;" (assignment_expression "ppcVar13 = local_94" identifier = identifier) ;) (expression_statement "ppcVar3 = (char **)rt_buf._68_4_;" (assignment_expression "ppcVar3 = (char **)rt_buf._68_4_" identifier = (cast_expression "(char **)rt_buf._68_4_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rt_buf._68_4_" identifier . field_identifier))) ;) }) (else_clause "else if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }" else (if_statement "if (puVar10 == (undefined1 *)0x15) {\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }\n        else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }" if (parenthesized_expression "(puVar10 == (undefined1 *)0x15)" ( (binary_expression "puVar10 == (undefined1 *)0x15" identifier == (cast_expression "(undefined1 *)0x15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          rt_buf._52_2_ = rt_buf._52_2_ | 0x100;\n          rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);\n          uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();\n          rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;\n          ppcVar13 = local_94;\n          ppcVar3 = (char **)rt_buf._68_4_;\n        }" { (expression_statement "rt_buf._52_2_ = rt_buf._52_2_ | 0x100;" (assignment_expression "rt_buf._52_2_ = rt_buf._52_2_ | 0x100" (field_expression "rt_buf._52_2_" identifier . field_identifier) = (binary_expression "rt_buf._52_2_ | 0x100" (field_expression "rt_buf._52_2_" identifier . field_identifier) | number_literal)) ;) (expression_statement "rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20);" (assignment_expression "rt_buf._80_2_ = (*(code *)puVar1)(ppcVar20)" (field_expression "rt_buf._80_2_" identifier . field_identifier) = (call_expression "(*(code *)puVar1)(ppcVar20)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar20)" ( identifier )))) ;) (expression_statement "uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)();" (assignment_expression "uVar7 = (*(code *)PTR_bb_clk_tck_0012a5b4)()" identifier = (call_expression "(*(code *)PTR_bb_clk_tck_0012a5b4)()" (parenthesized_expression "(*(code *)PTR_bb_clk_tck_0012a5b4)" ( (pointer_expression "*(code *)PTR_bb_clk_tck_0012a5b4" * (cast_expression "(code *)PTR_bb_clk_tck_0012a5b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_;" (assignment_expression "rt_buf._80_2_ = (short)(uVar7 / 100) * rt_buf._80_2_" (field_expression "rt_buf._80_2_" identifier . field_identifier) = (binary_expression "(short)(uVar7 / 100) * rt_buf._80_2_" (cast_expression "(short)(uVar7 / 100)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(uVar7 / 100)" ( (binary_expression "uVar7 / 100" identifier / number_literal) ))) * (field_expression "rt_buf._80_2_" identifier . field_identifier))) ;) (expression_statement "ppcVar13 = local_94;" (assignment_expression "ppcVar13 = local_94" identifier = identifier) ;) (expression_statement "ppcVar3 = (char **)rt_buf._68_4_;" (assignment_expression "ppcVar3 = (char **)rt_buf._68_4_" identifier = (cast_expression "(char **)rt_buf._68_4_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rt_buf._68_4_" identifier . field_identifier))) ;) }) (else_clause "else {\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }" else (compound_statement "{\n          if (rt_buf._68_4_ != 0) goto LAB_00046ed4;\n          ppcVar13 = ppcVar14;\n          ppcVar3 = ppcVar20;\n          if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }\n        }" { (if_statement "if (rt_buf._68_4_ != 0) goto LAB_00046ed4;" if (parenthesized_expression "(rt_buf._68_4_ != 0)" ( (binary_expression "rt_buf._68_4_ != 0" (field_expression "rt_buf._68_4_" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "ppcVar13 = ppcVar14;" (assignment_expression "ppcVar13 = ppcVar14" identifier = identifier) ;) (expression_statement "ppcVar3 = ppcVar20;" (assignment_expression "ppcVar3 = ppcVar20" identifier = identifier) ;) (if_statement "if (puVar10 != (undefined1 *)0x16) {\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }" if (parenthesized_expression "(puVar10 != (undefined1 *)0x16)" ( (binary_expression "puVar10 != (undefined1 *)0x16" identifier != (cast_expression "(undefined1 *)0x16" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ppcVar13 = ppcVar14 + 1;\n            if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;\n            ppcVar3 = (char **)*ppcVar14;\n          }" { (expression_statement "ppcVar13 = ppcVar14 + 1;" (assignment_expression "ppcVar13 = ppcVar14 + 1" identifier = (binary_expression "ppcVar14 + 1" identifier + number_literal)) ;) (if_statement "if ((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))\n            goto LAB_00046ed4;" if (parenthesized_expression "((puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0))" ( (binary_expression "(puVar10 != (undefined1 *)0x0) || (local_94 = ppcVar13, ppcVar14[1] != (char *)0x0)" (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_94 = ppcVar13, ppcVar14[1] != (char *)0x0)" ( (comma_expression "local_94 = ppcVar13, ppcVar14[1] != (char *)0x0" (assignment_expression "local_94 = ppcVar13" identifier = identifier) , (binary_expression "ppcVar14[1] != (char *)0x0" (subscript_expression "ppcVar14[1]" identifier [ number_literal ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "ppcVar3 = (char **)*ppcVar14;" (assignment_expression "ppcVar3 = (char **)*ppcVar14" identifier = (cast_expression "(char **)*ppcVar14" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppcVar14" * identifier))) ;) })) }))))))) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;) })) (expression_statement "sVar12 = (*(code *)puVar1)(ppcVar20);" (assignment_expression "sVar12 = (*(code *)puVar1)(ppcVar20)" identifier = (call_expression "(*(code *)puVar1)(ppcVar20)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppcVar20)" ( identifier )))) ;) (expression_statement "rt_buf._64_2_ = sVar12 + 1;" (assignment_expression "rt_buf._64_2_ = sVar12 + 1" (field_expression "rt_buf._64_2_" identifier . field_identifier) = (binary_expression "sVar12 + 1" identifier + number_literal)) ;) (expression_statement "ppcVar13 = local_94;" (assignment_expression "ppcVar13 = local_94" identifier = identifier) ;) (expression_statement "ppcVar3 = (char **)rt_buf._68_4_;" (assignment_expression "ppcVar3 = (char **)rt_buf._68_4_" identifier = (cast_expression "(char **)rt_buf._68_4_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rt_buf._68_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;) })) (expression_statement "rt_buf._52_2_ = *(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_;" (assignment_expression "rt_buf._52_2_ = *(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_" (field_expression "rt_buf._52_2_" identifier . field_identifier) = (binary_expression "*(ushort *)(puVar5 + (uVar7 & 3) * 2) | rt_buf._52_2_" (pointer_expression "*(ushort *)(puVar5 + (uVar7 & 3) * 2)" * (cast_expression "(ushort *)(puVar5 + (uVar7 & 3) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + (uVar7 & 3) * 2)" ( (binary_expression "puVar5 + (uVar7 & 3) * 2" identifier + (binary_expression "(uVar7 & 3) * 2" (parenthesized_expression "(uVar7 & 3)" ( (binary_expression "uVar7 & 3" identifier & number_literal) )) * number_literal)) )))) | (field_expression "rt_buf._52_2_" identifier . field_identifier))) ;) (expression_statement "ppcVar13 = local_94;" (assignment_expression "ppcVar13 = local_94" identifier = identifier) ;) (expression_statement "ppcVar3 = (char **)rt_buf._68_4_;" (assignment_expression "ppcVar3 = (char **)rt_buf._68_4_" identifier = (cast_expression "(char **)rt_buf._68_4_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "rt_buf._68_4_" identifier . field_identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "void FUN_00046e48(int param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  ushort uVar9;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  int *piVar10;\n  int *piVar11;\n  undefined *puVar12;\n  int iVar13;\n  int *piVar14;\n  code *pcVar15;\n  undefined *puVar16;\n  int *piVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  int *local_94;\n  undefined4 local_90;\n  uint local_8c;\n  undefined1 auStack_80 [4];\n  undefined1 auStack_7c [4];\n  uint local_78;\n  undefined1 auStack_6c [16];\n  undefined4 local_5c;\n  uint local_58;\n  ushort local_4c;\n  short local_40;\n  int *local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  short local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = param_2;\n  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);\n  piVar14 = local_94;\n  if (*local_94 != 0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);\n  local_94 = piVar14 + 1;\n  iVar13 = *piVar14;\n  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);\n  pcVar15 = (code *)PTR_FUN_0012a540;\n  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);\n  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));\n  *puVar5 = 0;\n  local_5c = CONCAT22(2,local_5c._2_2_);\n  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);\n  if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }\n  puVar1 = PTR_FUN_0012a3a4;\n  if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }\n  local_4c = 5;\n  if (uVar6 != 0) {\n    local_4c = 1;\n  }\n  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;\n  puVar4 = PTR_UINT_0012a18c + 0x4218;\n  piVar10 = local_94;\n  piVar3 = local_3c;\nLAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );\n}\n\n" (function_definition "void FUN_00046e48(int param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  ushort uVar9;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  int *piVar10;\n  int *piVar11;\n  undefined *puVar12;\n  int iVar13;\n  int *piVar14;\n  code *pcVar15;\n  undefined *puVar16;\n  int *piVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  int *local_94;\n  undefined4 local_90;\n  uint local_8c;\n  undefined1 auStack_80 [4];\n  undefined1 auStack_7c [4];\n  uint local_78;\n  undefined1 auStack_6c [16];\n  undefined4 local_5c;\n  uint local_58;\n  ushort local_4c;\n  short local_40;\n  int *local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  short local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = param_2;\n  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);\n  piVar14 = local_94;\n  if (*local_94 != 0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);\n  local_94 = piVar14 + 1;\n  iVar13 = *piVar14;\n  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);\n  pcVar15 = (code *)PTR_FUN_0012a540;\n  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);\n  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));\n  *puVar5 = 0;\n  local_5c = CONCAT22(2,local_5c._2_2_);\n  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);\n  if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }\n  puVar1 = PTR_FUN_0012a3a4;\n  if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }\n  local_4c = 5;\n  if (uVar6 != 0) {\n    local_4c = 1;\n  }\n  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;\n  puVar4 = PTR_UINT_0012a18c + 0x4218;\n  piVar10 = local_94;\n  piVar3 = local_3c;\nLAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00046e48(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  ushort uVar9;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  int *piVar10;\n  int *piVar11;\n  undefined *puVar12;\n  int iVar13;\n  int *piVar14;\n  code *pcVar15;\n  undefined *puVar16;\n  int *piVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  int *local_94;\n  undefined4 local_90;\n  uint local_8c;\n  undefined1 auStack_80 [4];\n  undefined1 auStack_7c [4];\n  uint local_78;\n  undefined1 auStack_6c [16];\n  undefined4 local_5c;\n  uint local_58;\n  ushort local_4c;\n  short local_40;\n  int *local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  short local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = param_2;\n  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);\n  piVar14 = local_94;\n  if (*local_94 != 0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);\n  local_94 = piVar14 + 1;\n  iVar13 = *piVar14;\n  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);\n  pcVar15 = (code *)PTR_FUN_0012a540;\n  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);\n  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));\n  *puVar5 = 0;\n  local_5c = CONCAT22(2,local_5c._2_2_);\n  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);\n  if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }\n  puVar1 = PTR_FUN_0012a3a4;\n  if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }\n  local_4c = 5;\n  if (uVar6 != 0) {\n    local_4c = 1;\n  }\n  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;\n  puVar4 = PTR_UINT_0012a18c + 0x4218;\n  piVar10 = local_94;\n  piVar3 = local_3c;\nLAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ushort uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined8 uVar19;" type_identifier identifier ;) (declaration "int *local_94;" primitive_type (pointer_declarator "*local_94" * identifier) ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "undefined1 auStack_80 [4];" type_identifier (array_declarator "auStack_80 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_7c [4];" type_identifier (array_declarator "auStack_7c [4]" identifier [ number_literal ]) ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "undefined1 auStack_6c [16];" type_identifier (array_declarator "auStack_6c [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "ushort local_4c;" type_identifier identifier ;) (declaration "short local_40;" (sized_type_specifier "short" short) identifier ;) (declaration "int *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "short local_30;" (sized_type_specifier "short" short) identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0)" identifier = (cast_expression "(code *)(PTR_LAB_0012a49c + 0x64d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0012a49c + 0x64d0)" ( (binary_expression "PTR_LAB_0012a49c + 0x64d0" identifier + number_literal) )))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_94 = param_2;" (assignment_expression "local_94 = param_2" identifier = identifier) ;) (expression_statement "puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);" (assignment_expression "puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" identifier = (cast_expression "(undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" identifier (argument_list "(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" ( (binary_expression "PTR_FUN_0012a1a8 + 0x5e60" identifier + number_literal) , (pointer_expression "&local_94" & identifier) ))))) ;) (expression_statement "piVar14 = local_94;" (assignment_expression "piVar14 = local_94" identifier = identifier) ;) (if_statement "if (*local_94 != 0) goto LAB_00046ee0;" if (parenthesized_expression "(*local_94 != 0)" ( (binary_expression "*local_94 != 0" (pointer_expression "*local_94" * identifier) != number_literal) )) (goto_statement "goto LAB_00046ee0;" goto statement_identifier ;)) (labeled_statement "LAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();" statement_identifier : (expression_statement "(*(code *)PTR_FUN_0012a1dc)();" (call_expression "(*(code *)PTR_FUN_0012a1dc)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a1dc)" ( (pointer_expression "*(code *)PTR_FUN_0012a1dc" * (cast_expression "(code *)PTR_FUN_0012a1dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);" statement_identifier : (expression_statement "(*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);" (call_expression "(*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54)" (parenthesized_expression "(*(code *)PTR_memset_0012aebc)" ( (pointer_expression "*(code *)PTR_memset_0012aebc" * (cast_expression "(code *)PTR_memset_0012aebc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_80,0,0x54)" ( identifier , number_literal , number_literal ))) ;)) (expression_statement "local_94 = piVar14 + 1;" (assignment_expression "local_94 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);" (assignment_expression "puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strchr_0012af54)(iVar13,0x2f)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,0x2f)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar15 = (code *)PTR_FUN_0012a540;" (assignment_expression "pcVar15 = (code *)PTR_FUN_0012a540" identifier = (cast_expression "(code *)PTR_FUN_0012a540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;" if (parenthesized_expression "(puVar5 == (undefined1 *)0x0)" ( (binary_expression "puVar5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00046f8c;" goto statement_identifier ;)) (expression_statement "uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);" (assignment_expression "uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20)" identifier = (call_expression "(*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20)" (parenthesized_expression "(*(code *)PTR_FUN_0012a3ec)" ( (pointer_expression "*(code *)PTR_FUN_0012a3ec" * (cast_expression "(code *)PTR_FUN_0012a3ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5 + 1,0,0x20)" ( (binary_expression "puVar5 + 1" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));" (assignment_expression "local_58 = ~(0xffffffffU >> (uVar6 & 0x1f))" identifier = (unary_expression "~(0xffffffffU >> (uVar6 & 0x1f))" ~ (parenthesized_expression "(0xffffffffU >> (uVar6 & 0x1f))" ( (binary_expression "0xffffffffU >> (uVar6 & 0x1f)" number_literal >> (parenthesized_expression "(uVar6 & 0x1f)" ( (binary_expression "uVar6 & 0x1f" identifier & number_literal) ))) )))) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "local_5c = CONCAT22(2,local_5c._2_2_);" (assignment_expression "local_5c = CONCAT22(2,local_5c._2_2_)" identifier = (call_expression "CONCAT22(2,local_5c._2_2_)" identifier (argument_list "(2,local_5c._2_2_)" ( number_literal , (field_expression "local_5c._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);" (assignment_expression "uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2)" identifier = (call_expression "(*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar13,auStack_7c,(uint)puVar4 & 2)" ( identifier , identifier , (binary_expression "(uint)puVar4 & 2" (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }" if (parenthesized_expression "((int)uVar6 < 0)" ( (binary_expression "(int)uVar6 < 0" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }" { (do_statement "do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);" do (compound_statement "{\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    }" { (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x4038,iVar13)" ( (binary_expression "PTR_UINT_0012a18c + 0x4038" identifier + number_literal) , identifier ))) ;) (labeled_statement "LAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;" statement_identifier : (expression_statement "pcVar15 = (code *)PTR_FUN_0012a540;" (assignment_expression "pcVar15 = (code *)PTR_FUN_0012a540" identifier = (cast_expression "(code *)PTR_FUN_0012a540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);" (assignment_expression "uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2)" identifier = (call_expression "(*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2)" (parenthesized_expression "(*(code *)PTR_FUN_0012a540)" ( (pointer_expression "*(code *)PTR_FUN_0012a540" * (cast_expression "(code *)PTR_FUN_0012a540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,auStack_7c,(uint)puVar4 & 2)" ( identifier , identifier , (binary_expression "(uint)puVar4 & 2" (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) }) while (parenthesized_expression "((int)uVar6 < 0)" ( (binary_expression "(int)uVar6 < 0" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) ;) (expression_statement "piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);" (assignment_expression "piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc)" identifier = (cast_expression "(int *)(PTR_UINT_0012a18c + 0x2bbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_0012a18c + 0x2bbc)" ( (binary_expression "PTR_UINT_0012a18c + 0x2bbc" identifier + number_literal) )))) ;) }) (else_clause "else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }" else (compound_statement "{\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }" { (expression_statement "piVar14 = (int *)0x0;" (assignment_expression "piVar14 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar5 = 0x2f;" (assignment_expression "*puVar5 = 0x2f" (pointer_expression "*puVar5" * identifier) = number_literal) ;) }))) (expression_statement "puVar1 = PTR_FUN_0012a3a4;" (assignment_expression "puVar1 = PTR_FUN_0012a3a4" identifier = identifier) ;) (if_statement "if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }" if (parenthesized_expression "(puVar4 != (undefined *)0x0)" ( (binary_expression "puVar4 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = (uint)puVar4 & 1;\n  }" { (expression_statement "uVar6 = (uint)puVar4 & 1;" (assignment_expression "uVar6 = (uint)puVar4 & 1" identifier = (binary_expression "(uint)puVar4 & 1" (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) })) (expression_statement "local_4c = 5;" (assignment_expression "local_4c = 5" identifier = number_literal) ;) (if_statement "if (uVar6 != 0) {\n    local_4c = 1;\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    local_4c = 1;\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) })) (expression_statement "puVar16 = PTR_FUN_0012a1a8 + 0x5df8;" (assignment_expression "puVar16 = PTR_FUN_0012a1a8 + 0x5df8" identifier = (binary_expression "PTR_FUN_0012a1a8 + 0x5df8" identifier + number_literal)) ;) (expression_statement "puVar4 = PTR_UINT_0012a18c + 0x4218;" (assignment_expression "puVar4 = PTR_UINT_0012a18c + 0x4218" identifier = (binary_expression "PTR_UINT_0012a18c + 0x4218" identifier + number_literal)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) (labeled_statement "LAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );" statement_identifier : (do_statement "do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );" do (compound_statement "{\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  }" { (expression_statement "local_3c = piVar3;" (assignment_expression "local_3c = piVar3" identifier = identifier) ;) (if_statement "if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }" if (parenthesized_expression "(*piVar10 == 0)" ( (binary_expression "*piVar10 == 0" (pointer_expression "*piVar10" * identifier) == number_literal) )) (compound_statement "{\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }" { (if_statement "if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }" if (parenthesized_expression "(((local_4c & 0x200) != 0) && (local_3c == (int *)0x0))" ( (binary_expression "((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)" (parenthesized_expression "((local_4c & 0x200) != 0)" ( (binary_expression "(local_4c & 0x200) != 0" (parenthesized_expression "(local_4c & 0x200)" ( (binary_expression "local_4c & 0x200" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_3c == (int *)0x0)" ( (binary_expression "local_3c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }" { (expression_statement "local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);" (assignment_expression "local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0)" identifier = (cast_expression "(int *)(PTR_FUN_0012a1a8 + -0x56d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_0012a1a8 + -0x56d0)" ( (binary_expression "PTR_FUN_0012a1a8 + -0x56d0" identifier + number_literal) )))) ;) })) (expression_statement "uVar9 = local_4c;" (assignment_expression "uVar9 = local_4c" identifier = identifier) ;) (if_statement "if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }" { (if_statement "if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }" if (parenthesized_expression "((local_4c & 4) == 0)" ( (binary_expression "(local_4c & 4) == 0" (parenthesized_expression "(local_4c & 4)" ( (binary_expression "local_4c & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }" { (expression_statement "piVar10 = (int *)~local_58;" (assignment_expression "piVar10 = (int *)~local_58" identifier = (cast_expression "(int *)~local_58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (unary_expression "~local_58" ~ identifier))) ;) (if_statement "if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }" if (parenthesized_expression "((-local_58 & ~local_58) != 0)" ( (binary_expression "(-local_58 & ~local_58) != 0" (parenthesized_expression "(-local_58 & ~local_58)" ( (binary_expression "-local_58 & ~local_58" (unary_expression "-local_58" - identifier) & (unary_expression "~local_58" ~ identifier)) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }" { (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x40a0)" ( (binary_expression "PTR_UINT_0012a18c + 0x40a0" identifier + number_literal) ))) ;) (expression_statement "piVar10 = piVar14;" (assignment_expression "piVar10 = piVar14" identifier = identifier) ;) })) (if_statement "if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }" if (parenthesized_expression "(((uint)piVar10 & local_78) != 0)" ( (binary_expression "((uint)piVar10 & local_78) != 0" (parenthesized_expression "((uint)piVar10 & local_78)" ( (binary_expression "(uint)piVar10 & local_78" (cast_expression "(uint)piVar10" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }" { (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x40b4)" ( (binary_expression "PTR_UINT_0012a18c + 0x40b4" identifier + number_literal) ))) ;) })) (if_statement "if (param_1 == 1) goto LAB_0004710c;" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004710c;" goto statement_identifier ;)) (goto_statement "goto LAB_00047084;" goto statement_identifier ;) })) (expression_statement "uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);" (assignment_expression "uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078)" identifier = (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x4078)" ( (binary_expression "PTR_UINT_0012a18c + 0x4078" identifier + number_literal) )))) ;) })) (if_statement "if (param_1 == 1) goto LAB_000470fc;" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000470fc;" goto statement_identifier ;)) (labeled_statement "LAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" statement_identifier : (expression_statement "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" (assignment_expression "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0)" identifier = (call_expression "(*(code *)PTR_FUN_0012a490)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a490)" ( (pointer_expression "*(code *)PTR_FUN_0012a490" * (cast_expression "(code *)PTR_FUN_0012a490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal )))) ;)) (expression_statement "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);" (call_expression "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054)" (parenthesized_expression "(*(code *)PTR_FUN_0012a40c)" ( (pointer_expression "*(code *)PTR_FUN_0012a40c" * (cast_expression "(code *)PTR_FUN_0012a40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054)" ( identifier , number_literal , identifier , (binary_expression "PTR_UINT_0012a18c + 0x4054" identifier + number_literal) ))) ;) (while_statement "while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }" while (parenthesized_expression "(local_2c != *(int *)puVar2)" ( (binary_expression "local_2c != *(int *)puVar2" identifier != (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }" { (expression_statement "uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }" statement_identifier : (if_statement "if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }" if (parenthesized_expression "((uVar9 & 4) != 0)" ( (binary_expression "(uVar9 & 4) != 0" (parenthesized_expression "(uVar9 & 4)" ( (binary_expression "uVar9 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_58 = 0xffffffff;\n        }" { (expression_statement "local_58 = 0xffffffff;" (assignment_expression "local_58 = 0xffffffff" identifier = number_literal) ;) }))) (labeled_statement "LAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" statement_identifier : (expression_statement "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" (assignment_expression "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0)" identifier = (call_expression "(*(code *)PTR_FUN_0012a490)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a490)" ( (pointer_expression "*(code *)PTR_FUN_0012a490" * (cast_expression "(code *)PTR_FUN_0012a490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(2,1,0)" ( number_literal , number_literal , number_literal )))) ;)) (expression_statement "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);" (call_expression "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048)" (parenthesized_expression "(*(code *)PTR_FUN_0012a40c)" ( (pointer_expression "*(code *)PTR_FUN_0012a40c" * (cast_expression "(code *)PTR_FUN_0012a40c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048)" ( identifier , number_literal , identifier , (binary_expression "PTR_UINT_0012a18c + 0x4048" identifier + number_literal) ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "uVar6 = (*pcVar18)(puVar16,&local_94);" (assignment_expression "uVar6 = (*pcVar18)(puVar16,&local_94)" identifier = (call_expression "(*pcVar18)(puVar16,&local_94)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(puVar16,&local_94)" ( identifier , (pointer_expression "&local_94" & identifier) )))) ;) (expression_statement "uVar19 = CONCAT44(uVar6,local_94);" (assignment_expression "uVar19 = CONCAT44(uVar6,local_94)" identifier = (call_expression "CONCAT44(uVar6,local_94)" identifier (argument_list "(uVar6,local_94)" ( identifier , identifier )))) ;) (if_statement "if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }" if (parenthesized_expression "((uVar6 & 0x20) == 0)" ( (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" ( (binary_expression "uVar6 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }" { (expression_statement "piVar17 = (int *)local_94[-1];" (assignment_expression "piVar17 = (int *)local_94[-1]" identifier = (cast_expression "(int *)local_94[-1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_94[-1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }" if (parenthesized_expression "(uVar6 != 0x10)" ( (binary_expression "uVar6 != 0x10" identifier != number_literal) )) (compound_statement "{\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }" { (expression_statement "puVar12 = (undefined *)0x12;" (assignment_expression "puVar12 = (undefined *)0x12" identifier = (cast_expression "(undefined *)0x12" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }" if (parenthesized_expression "(uVar6 == 0x11)" ( (binary_expression "uVar6 == 0x11" identifier == number_literal) )) (compound_statement "{\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }" { (if_statement "if (local_58 != 0) goto LAB_00046ed4;" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "iVar13 = (*pcVar15)(piVar17,&local_90,0);" (assignment_expression "iVar13 = (*pcVar15)(piVar17,&local_90,0)" identifier = (call_expression "(*pcVar15)(piVar17,&local_90,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar17,&local_90,0)" ( identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (if_statement "if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }" { (expression_statement "puVar12 = PTR_UINT_0012a18c + 0x4038;" (assignment_expression "puVar12 = PTR_UINT_0012a18c + 0x4038" identifier = (binary_expression "PTR_UINT_0012a18c + 0x4038" identifier + number_literal)) ;) (expression_statement "uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);" (assignment_expression "uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17)" identifier = (call_expression "(*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12,piVar17)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00047208;" goto statement_identifier ;) })) (labeled_statement "LAB_00047380:\n          local_5c = local_90;" statement_identifier : (expression_statement "local_5c = local_90;" (assignment_expression "local_5c = local_90" identifier = identifier) ;)) (expression_statement "local_58 = local_8c;" (assignment_expression "local_58 = local_8c" identifier = identifier) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar14 = piVar17;" (assignment_expression "piVar14 = piVar17" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;) })) (labeled_statement "LAB_00047208:\n        puVar5 = (undefined1 *)0x13;" statement_identifier : (expression_statement "puVar5 = (undefined1 *)0x13;" (assignment_expression "puVar5 = (undefined1 *)0x13" identifier = (cast_expression "(undefined1 *)0x13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }" if (parenthesized_expression "((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12)" ( (binary_expression "(undefined *)((ulonglong)uVar19 >> 0x20) == puVar12" (cast_expression "(undefined *)((ulonglong)uVar19 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" ( (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == identifier) )) (compound_statement "{\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }" { (if_statement "if ((local_4c & 2) != 0) goto LAB_00046ed4;" if (parenthesized_expression "((local_4c & 2) != 0)" ( (binary_expression "(local_4c & 2) != 0" (parenthesized_expression "(local_4c & 2)" ( (binary_expression "local_4c & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "iVar13 = (*pcVar15)(piVar17,auStack_6c,1);" (assignment_expression "iVar13 = (*pcVar15)(piVar17,auStack_6c,1)" identifier = (call_expression "(*pcVar15)(piVar17,auStack_6c,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar17,auStack_6c,1)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_4c = local_4c | 2;" (assignment_expression "local_4c = local_4c | 2" identifier = (binary_expression "local_4c | 2" identifier | number_literal)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) (if_statement "if (iVar13 == 0) goto LAB_00046fe4;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;)) (if_statement "if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }" if (parenthesized_expression "(-1 < iVar13)" ( (binary_expression "-1 < iVar13" number_literal < identifier) )) (compound_statement "{\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }" { (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x4060,piVar17)" ( (binary_expression "PTR_UINT_0012a18c + 0x4060" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_00047380;" goto statement_identifier ;) })) (expression_statement "puVar5 = PTR_UINT_0012a18c + 0x4038;" (assignment_expression "puVar5 = PTR_UINT_0012a18c + 0x4038" identifier = (binary_expression "PTR_UINT_0012a18c + 0x4038" identifier + number_literal)) ;) (expression_statement "uVar19 = (*(code *)PTR_FUN_0012a1e4)();" (assignment_expression "uVar19 = (*(code *)PTR_FUN_0012a1e4)()" identifier = (call_expression "(*(code *)PTR_FUN_0012a1e4)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" ( (pointer_expression "*(code *)PTR_FUN_0012a1e4" * (cast_expression "(code *)PTR_FUN_0012a1e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) })) (expression_statement "puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);" (assignment_expression "puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20)" identifier = (cast_expression "(undefined1 *)((ulonglong)uVar19 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" ( (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar11 = (int *)uVar19;" (assignment_expression "piVar11 = (int *)uVar19" identifier = (cast_expression "(int *)uVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" if (parenthesized_expression "(puVar8 == puVar5)" ( (binary_expression "puVar8 == puVar5" identifier == identifier) )) (compound_statement "{\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }" { (expression_statement "local_4c = local_4c | 0x40;" (assignment_expression "local_4c = local_4c | 0x40" identifier = (binary_expression "local_4c | 0x40" identifier | number_literal)) ;) (expression_statement "local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);" (assignment_expression "local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000)" identifier = (call_expression "(*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000)" (parenthesized_expression "(*(code *)PTR_FUN_0012a3ec)" ( (pointer_expression "*(code *)PTR_FUN_0012a3ec" * (cast_expression "(code *)PTR_FUN_0012a3ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar17,0x40,0x8000)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) }) (else_clause "else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" else (if_statement "if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" if (parenthesized_expression "(puVar8 == &DAT_00000014)" ( (binary_expression "puVar8 == &DAT_00000014" identifier == (pointer_expression "&DAT_00000014" & identifier)) )) (compound_statement "{\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }" { (expression_statement "local_4c = local_4c | 0x80;" (assignment_expression "local_4c = local_4c | 0x80" identifier = (binary_expression "local_4c | 0x80" identifier | number_literal)) ;) (expression_statement "local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);" (assignment_expression "local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff)" identifier = (call_expression "(*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff)" (parenthesized_expression "(*(code *)PTR_FUN_0012a3ec)" ( (pointer_expression "*(code *)PTR_FUN_0012a3ec" * (cast_expression "(code *)PTR_FUN_0012a3ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar17,0x80,0x7fffffff)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) }) (else_clause "else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" else (if_statement "if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" if (parenthesized_expression "(puVar8 == (undefined1 *)0x15)" ( (binary_expression "puVar8 == (undefined1 *)0x15" identifier == (cast_expression "(undefined1 *)0x15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }" { (expression_statement "local_4c = local_4c | 0x100;" (assignment_expression "local_4c = local_4c | 0x100" identifier = (binary_expression "local_4c | 0x100" identifier | number_literal)) ;) (expression_statement "local_30 = (*(code *)puVar1)(piVar17);" (assignment_expression "local_30 = (*(code *)puVar1)(piVar17)" identifier = (call_expression "(*(code *)puVar1)(piVar17)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar17)" ( identifier )))) ;) (expression_statement "uVar6 = (*(code *)PTR_FUN_0012a5b4)();" (assignment_expression "uVar6 = (*(code *)PTR_FUN_0012a5b4)()" identifier = (call_expression "(*(code *)PTR_FUN_0012a5b4)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a5b4)" ( (pointer_expression "*(code *)PTR_FUN_0012a5b4" * (cast_expression "(code *)PTR_FUN_0012a5b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_30 = (short)(uVar6 / 100) * local_30;" (assignment_expression "local_30 = (short)(uVar6 / 100) * local_30" identifier = (binary_expression "(short)(uVar6 / 100) * local_30" (cast_expression "(short)(uVar6 / 100)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(uVar6 / 100)" ( (binary_expression "uVar6 / 100" identifier / number_literal) ))) * identifier)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) }) (else_clause "else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" else (compound_statement "{\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" { (if_statement "if (local_3c != (int *)0x0) goto LAB_00046ed4;" if (parenthesized_expression "(local_3c != (int *)0x0)" ( (binary_expression "local_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "piVar10 = piVar11;" (assignment_expression "piVar10 = piVar11" identifier = identifier) ;) (expression_statement "piVar3 = piVar17;" (assignment_expression "piVar3 = piVar17" identifier = identifier) ;) (if_statement "if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }" if (parenthesized_expression "(puVar8 != (undefined1 *)0x16)" ( (binary_expression "puVar8 != (undefined1 *)0x16" identifier != (cast_expression "(undefined1 *)0x16" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }" { (expression_statement "piVar10 = piVar11 + 1;" (assignment_expression "piVar10 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;" if (parenthesized_expression "((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))" ( (binary_expression "(puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0)" (parenthesized_expression "(puVar8 != (undefined1 *)0x0)" ( (binary_expression "puVar8 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_94 = piVar10, piVar11[1] != 0)" ( (comma_expression "local_94 = piVar10, piVar11[1] != 0" (assignment_expression "local_94 = piVar10" identifier = identifier) , (binary_expression "piVar11[1] != 0" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != number_literal)) ))) )) (goto_statement "goto LAB_00046ed4;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)*piVar11;" (assignment_expression "piVar3 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) })) }))))))) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;) })) (expression_statement "local_40 = (*(code *)puVar1)(piVar17);" (assignment_expression "local_40 = (*(code *)puVar1)(piVar17)" identifier = (call_expression "(*(code *)puVar1)(piVar17)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar17)" ( identifier )))) ;) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) (goto_statement "goto LAB_00046fe4;" goto statement_identifier ;) })) (expression_statement "local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;" (assignment_expression "local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c" identifier = (binary_expression "*(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c" (pointer_expression "*(ushort *)(puVar4 + (uVar6 & 3) * 2)" * (cast_expression "(ushort *)(puVar4 + (uVar6 & 3) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (uVar6 & 3) * 2)" ( (binary_expression "puVar4 + (uVar6 & 3) * 2" identifier + (binary_expression "(uVar6 & 3) * 2" (parenthesized_expression "(uVar6 & 3)" ( (binary_expression "uVar6 & 3" identifier & number_literal) )) * number_literal)) )))) | identifier)) ;) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" identifier = identifier) ;) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ (parenthesized_expression ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression ~ IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - IDENT) & (unary_expression ~ IDENT)) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT , LIT )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) ))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT , LIT )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) ))) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression IDENT / LIT) ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) }))))))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) )))) | IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "void FUN_00046e48(int param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  ushort uVar9;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  int *piVar10;\n  int *piVar11;\n  undefined *puVar12;\n  int iVar13;\n  int *piVar14;\n  code *pcVar15;\n  undefined *puVar16;\n  int *piVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  int *local_94;\n  undefined4 local_90;\n  uint local_8c;\n  undefined1 auStack_80 [4];\n  undefined1 auStack_7c [4];\n  uint local_78;\n  undefined1 auStack_6c [16];\n  undefined4 local_5c;\n  uint local_58;\n  ushort local_4c;\n  short local_40;\n  int *local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  short local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = param_2;\n  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);\n  piVar14 = local_94;\n  if (*local_94 != 0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);\n  local_94 = piVar14 + 1;\n  iVar13 = *piVar14;\n  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);\n  pcVar15 = (code *)PTR_FUN_0012a540;\n  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);\n  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));\n  *puVar5 = 0;\n  local_5c = CONCAT22(2,local_5c._2_2_);\n  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);\n  if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }\n  puVar1 = PTR_FUN_0012a3a4;\n  if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }\n  local_4c = 5;\n  if (uVar6 != 0) {\n    local_4c = 1;\n  }\n  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;\n  puVar4 = PTR_UINT_0012a18c + 0x4218;\n  piVar10 = local_94;\n  piVar3 = local_3c;\nLAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_00046e48(int param_1,int *param_2)" (identifier "FUN_00046e48") (parameter_list "(int param_1,int *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined1 *puVar5;\n  uint uVar6;\n  ushort uVar9;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  int *piVar10;\n  int *piVar11;\n  undefined *puVar12;\n  int iVar13;\n  int *piVar14;\n  code *pcVar15;\n  undefined *puVar16;\n  int *piVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  int *local_94;\n  undefined4 local_90;\n  uint local_8c;\n  undefined1 auStack_80 [4];\n  undefined1 auStack_7c [4];\n  uint local_78;\n  undefined1 auStack_6c [16];\n  undefined4 local_5c;\n  uint local_58;\n  ushort local_4c;\n  short local_40;\n  int *local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  short local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0012b14c;\n  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  local_94 = param_2;\n  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);\n  piVar14 = local_94;\n  if (*local_94 != 0) goto LAB_00046ee0;\nLAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();\nLAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);\n  local_94 = piVar14 + 1;\n  iVar13 = *piVar14;\n  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);\n  pcVar15 = (code *)PTR_FUN_0012a540;\n  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;\n  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);\n  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));\n  *puVar5 = 0;\n  local_5c = CONCAT22(2,local_5c._2_2_);\n  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);\n  if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }\n  puVar1 = PTR_FUN_0012a3a4;\n  if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }\n  local_4c = 5;\n  if (uVar6 != 0) {\n    local_4c = 1;\n  }\n  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;\n  puVar4 = PTR_UINT_0012a18c + 0x4218;\n  piVar10 = local_94;\n  piVar3 = local_3c;\nLAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined1 *puVar5;" (type_identifier "undefined1") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "ushort uVar9;" (type_identifier "ushort") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined1 *puVar8;" (type_identifier "undefined1") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "code *pcVar15;" (type_identifier "code") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "code *pcVar18;" (type_identifier "code") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "undefined8 uVar19;" (type_identifier "undefined8") (identifier "uVar19") (; ";")) (declaration "int *local_94;" (primitive_type "int") (pointer_declarator "*local_94" (* "*") (identifier "local_94")) (; ";")) (declaration "undefined4 local_90;" (type_identifier "undefined4") (identifier "local_90") (; ";")) (declaration "uint local_8c;" (type_identifier "uint") (identifier "local_8c") (; ";")) (declaration "undefined1 auStack_80 [4];" (type_identifier "undefined1") (array_declarator "auStack_80 [4]" (identifier "auStack_80") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_7c [4];" (type_identifier "undefined1") (array_declarator "auStack_7c [4]" (identifier "auStack_7c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_78;" (type_identifier "uint") (identifier "local_78") (; ";")) (declaration "undefined1 auStack_6c [16];" (type_identifier "undefined1") (array_declarator "auStack_6c [16]" (identifier "auStack_6c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "ushort local_4c;" (type_identifier "ushort") (identifier "local_4c") (; ";")) (declaration "short local_40;" (sized_type_specifier "short" (short "short")) (identifier "local_40") (; ";")) (declaration "int *local_3c;" (primitive_type "int") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "short local_30;" (sized_type_specifier "short" (short "short")) (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0012b14c" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0)" (identifier "pcVar18") (= "=") (cast_expression "(code *)(PTR_LAB_0012a49c + 0x64d0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0012a49c + 0x64d0)" (( "(") (binary_expression "PTR_LAB_0012a49c + 0x64d0" (identifier "PTR_LAB_0012a49c") (+ "+") (number_literal "0x64d0")) () ")")))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (expression_statement "local_94 = param_2;" (assignment_expression "local_94 = param_2" (identifier "local_94") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);" (assignment_expression "puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" (identifier "puVar4") (= "=") (cast_expression "(undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" (identifier "FUN_000464d0") (argument_list "(PTR_FUN_0012a1a8 + 0x5e60,&local_94)" (( "(") (binary_expression "PTR_FUN_0012a1a8 + 0x5e60" (identifier "PTR_FUN_0012a1a8") (+ "+") (number_literal "0x5e60")) (, ",") (pointer_expression "&local_94" (& "&") (identifier "local_94")) () ")"))))) (; ";")) (expression_statement "piVar14 = local_94;" (assignment_expression "piVar14 = local_94" (identifier "piVar14") (= "=") (identifier "local_94")) (; ";")) (if_statement "if (*local_94 != 0) goto LAB_00046ee0;" (if "if") (parenthesized_expression "(*local_94 != 0)" (( "(") (binary_expression "*local_94 != 0" (pointer_expression "*local_94" (* "*") (identifier "local_94")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00046ee0;" (goto "goto") (statement_identifier "LAB_00046ee0") (; ";"))) (labeled_statement "LAB_00046ed4:\n  (*(code *)PTR_FUN_0012a1dc)();" (statement_identifier "LAB_00046ed4") (: ":") (expression_statement "(*(code *)PTR_FUN_0012a1dc)();" (call_expression "(*(code *)PTR_FUN_0012a1dc)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a1dc)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1dc" (* "*") (cast_expression "(code *)PTR_FUN_0012a1dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1dc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_00046ee0:\n  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);" (statement_identifier "LAB_00046ee0") (: ":") (expression_statement "(*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);" (call_expression "(*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54)" (parenthesized_expression "(*(code *)PTR_memset_0012aebc)" (( "(") (pointer_expression "*(code *)PTR_memset_0012aebc" (* "*") (cast_expression "(code *)PTR_memset_0012aebc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_0012aebc"))) () ")")) (argument_list "(auStack_80,0,0x54)" (( "(") (identifier "auStack_80") (, ",") (number_literal "0") (, ",") (number_literal "0x54") () ")"))) (; ";"))) (expression_statement "local_94 = piVar14 + 1;" (assignment_expression "local_94 = piVar14 + 1" (identifier "local_94") (= "=") (binary_expression "piVar14 + 1" (identifier "piVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = *piVar14;" (assignment_expression "iVar13 = *piVar14" (identifier "iVar13") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);" (assignment_expression "puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f)" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strchr_0012af54)(iVar13,0x2f)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" (( "(") (pointer_expression "*(code *)PTR_strchr_0012af54" (* "*") (cast_expression "(code *)PTR_strchr_0012af54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_0012af54"))) () ")")) (argument_list "(iVar13,0x2f)" (( "(") (identifier "iVar13") (, ",") (number_literal "0x2f") () ")"))))) (; ";")) (expression_statement "pcVar15 = (code *)PTR_FUN_0012a540;" (assignment_expression "pcVar15 = (code *)PTR_FUN_0012a540" (identifier "pcVar15") (= "=") (cast_expression "(code *)PTR_FUN_0012a540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a540"))) (; ";")) (if_statement "if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;" (if "if") (parenthesized_expression "(puVar5 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined1 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00046f8c;" (goto "goto") (statement_identifier "LAB_00046f8c") (; ";"))) (expression_statement "uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);" (assignment_expression "uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20)" (parenthesized_expression "(*(code *)PTR_FUN_0012a3ec)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a3ec" (* "*") (cast_expression "(code *)PTR_FUN_0012a3ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a3ec"))) () ")")) (argument_list "(puVar5 + 1,0,0x20)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) (, ",") (number_literal "0") (, ",") (number_literal "0x20") () ")")))) (; ";")) (expression_statement "local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));" (assignment_expression "local_58 = ~(0xffffffffU >> (uVar6 & 0x1f))" (identifier "local_58") (= "=") (unary_expression "~(0xffffffffU >> (uVar6 & 0x1f))" (~ "~") (parenthesized_expression "(0xffffffffU >> (uVar6 & 0x1f))" (( "(") (binary_expression "0xffffffffU >> (uVar6 & 0x1f)" (number_literal "0xffffffffU") (>> ">>") (parenthesized_expression "(uVar6 & 0x1f)" (( "(") (binary_expression "uVar6 & 0x1f" (identifier "uVar6") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = CONCAT22(2,local_5c._2_2_);" (assignment_expression "local_5c = CONCAT22(2,local_5c._2_2_)" (identifier "local_5c") (= "=") (call_expression "CONCAT22(2,local_5c._2_2_)" (identifier "CONCAT22") (argument_list "(2,local_5c._2_2_)" (( "(") (number_literal "2") (, ",") (field_expression "local_5c._2_2_" (identifier "local_5c") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);" (assignment_expression "uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2)" (identifier "uVar6") (= "=") (call_expression "(*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar13,auStack_7c,(uint)puVar4 & 2)" (( "(") (identifier "iVar13") (, ",") (identifier "auStack_7c") (, ",") (binary_expression "(uint)puVar4 & 2" (cast_expression "(uint)puVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar4")) (& "&") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((int)uVar6 < 0) {\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }\n  else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }" (if "if") (parenthesized_expression "((int)uVar6 < 0)" (( "(") (binary_expression "(int)uVar6 < 0" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);\n    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);\n  }" ({ "{") (do_statement "do {\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    } while ((int)uVar6 < 0);" (do "do") (compound_statement "{\n      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);\nLAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;\n      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);\n    }" ({ "{") (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1e4" (* "*") (cast_expression "(code *)PTR_FUN_0012a1e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1e4"))) () ")")) (argument_list "(PTR_UINT_0012a18c + 0x4038,iVar13)" (( "(") (binary_expression "PTR_UINT_0012a18c + 0x4038" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x4038")) (, ",") (identifier "iVar13") () ")"))) (; ";")) (labeled_statement "LAB_00046f8c:\n      pcVar15 = (code *)PTR_FUN_0012a540;" (statement_identifier "LAB_00046f8c") (: ":") (expression_statement "pcVar15 = (code *)PTR_FUN_0012a540;" (assignment_expression "pcVar15 = (code *)PTR_FUN_0012a540" (identifier "pcVar15") (= "=") (cast_expression "(code *)PTR_FUN_0012a540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a540"))) (; ";"))) (expression_statement "uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);" (assignment_expression "uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2)" (parenthesized_expression "(*(code *)PTR_FUN_0012a540)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a540" (* "*") (cast_expression "(code *)PTR_FUN_0012a540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a540"))) () ")")) (argument_list "(iVar13,auStack_7c,(uint)puVar4 & 2)" (( "(") (identifier "iVar13") (, ",") (identifier "auStack_7c") (, ",") (binary_expression "(uint)puVar4 & 2" (cast_expression "(uint)puVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar4")) (& "&") (number_literal "2")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar6 < 0)" (( "(") (binary_expression "(int)uVar6 < 0" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0")) () ")")) (; ";")) (expression_statement "piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);" (assignment_expression "piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc)" (identifier "piVar14") (= "=") (cast_expression "(int *)(PTR_UINT_0012a18c + 0x2bbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_0012a18c + 0x2bbc)" (( "(") (binary_expression "PTR_UINT_0012a18c + 0x2bbc" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x2bbc")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }" (else "else") (compound_statement "{\n    piVar14 = (int *)0x0;\n    *puVar5 = 0x2f;\n  }" ({ "{") (expression_statement "piVar14 = (int *)0x0;" (assignment_expression "piVar14 = (int *)0x0" (identifier "piVar14") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*puVar5 = 0x2f;" (assignment_expression "*puVar5 = 0x2f" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0x2f")) (; ";")) (} "}")))) (expression_statement "puVar1 = PTR_FUN_0012a3a4;" (assignment_expression "puVar1 = PTR_FUN_0012a3a4" (identifier "puVar1") (= "=") (identifier "PTR_FUN_0012a3a4")) (; ";")) (if_statement "if (puVar4 != (undefined *)0x0) {\n    uVar6 = (uint)puVar4 & 1;\n  }" (if "if") (parenthesized_expression "(puVar4 != (undefined *)0x0)" (( "(") (binary_expression "puVar4 != (undefined *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar6 = (uint)puVar4 & 1;\n  }" ({ "{") (expression_statement "uVar6 = (uint)puVar4 & 1;" (assignment_expression "uVar6 = (uint)puVar4 & 1" (identifier "uVar6") (= "=") (binary_expression "(uint)puVar4 & 1" (cast_expression "(uint)puVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar4")) (& "&") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_4c = 5;" (assignment_expression "local_4c = 5" (identifier "local_4c") (= "=") (number_literal "5")) (; ";")) (if_statement "if (uVar6 != 0) {\n    local_4c = 1;\n  }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_4c = 1;\n  }" ({ "{") (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" (identifier "local_4c") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "puVar16 = PTR_FUN_0012a1a8 + 0x5df8;" (assignment_expression "puVar16 = PTR_FUN_0012a1a8 + 0x5df8" (identifier "puVar16") (= "=") (binary_expression "PTR_FUN_0012a1a8 + 0x5df8" (identifier "PTR_FUN_0012a1a8") (+ "+") (number_literal "0x5df8"))) (; ";")) (expression_statement "puVar4 = PTR_UINT_0012a18c + 0x4218;" (assignment_expression "puVar4 = PTR_UINT_0012a18c + 0x4218" (identifier "puVar4") (= "=") (binary_expression "PTR_UINT_0012a18c + 0x4218" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x4218"))) (; ";")) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" (identifier "piVar10") (= "=") (identifier "local_94")) (; ";")) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" (identifier "piVar3") (= "=") (identifier "local_3c")) (; ";")) (labeled_statement "LAB_00046fe4:\n  do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );" (statement_identifier "LAB_00046fe4") (: ":") (do_statement "do {\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  } while( true );" (do "do") (compound_statement "{\n    local_3c = piVar3;\n    if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }\n    uVar6 = (*pcVar18)(puVar16,&local_94);\n    uVar19 = CONCAT44(uVar6,local_94);\n    if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }\n    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;\n    piVar10 = local_94;\n    piVar3 = local_3c;\n  }" ({ "{") (expression_statement "local_3c = piVar3;" (assignment_expression "local_3c = piVar3" (identifier "local_3c") (= "=") (identifier "piVar3")) (; ";")) (if_statement "if (*piVar10 == 0) {\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(*piVar10 == 0)" (( "(") (binary_expression "*piVar10 == 0" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }\n      uVar9 = local_4c;\n      if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }\n      if (param_1 == 1) goto LAB_000470fc;\nLAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);\n      while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }\n      return;\n    }" ({ "{") (if_statement "if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }" (if "if") (parenthesized_expression "(((local_4c & 0x200) != 0) && (local_3c == (int *)0x0))" (( "(") (binary_expression "((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)" (parenthesized_expression "((local_4c & 0x200) != 0)" (( "(") (binary_expression "(local_4c & 0x200) != 0" (parenthesized_expression "(local_4c & 0x200)" (( "(") (binary_expression "local_4c & 0x200" (identifier "local_4c") (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_3c == (int *)0x0)" (( "(") (binary_expression "local_3c == (int *)0x0" (identifier "local_3c") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);\n      }" ({ "{") (expression_statement "local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);" (assignment_expression "local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0)" (identifier "local_3c") (= "=") (cast_expression "(int *)(PTR_FUN_0012a1a8 + -0x56d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_FUN_0012a1a8 + -0x56d0)" (( "(") (binary_expression "PTR_FUN_0012a1a8 + -0x56d0" (identifier "PTR_FUN_0012a1a8") (+ "+") (number_literal "-0x56d0")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar9 = local_4c;" (assignment_expression "uVar9 = local_4c" (identifier "uVar9") (= "=") (identifier "local_4c")) (; ";")) (if_statement "if (local_58 != 0) {\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }" (if "if") (parenthesized_expression "(local_58 != 0)" (( "(") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }\n        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);\n      }" ({ "{") (if_statement "if ((local_4c & 4) == 0) {\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }" (if "if") (parenthesized_expression "((local_4c & 4) == 0)" (( "(") (binary_expression "(local_4c & 4) == 0" (parenthesized_expression "(local_4c & 4)" (( "(") (binary_expression "local_4c & 4" (identifier "local_4c") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          piVar10 = (int *)~local_58;\n          if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }\n          if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }\n          if (param_1 == 1) goto LAB_0004710c;\n          goto LAB_00047084;\n        }" ({ "{") (expression_statement "piVar10 = (int *)~local_58;" (assignment_expression "piVar10 = (int *)~local_58" (identifier "piVar10") (= "=") (cast_expression "(int *)~local_58" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "~local_58" (~ "~") (identifier "local_58")))) (; ";")) (if_statement "if ((-local_58 & ~local_58) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }" (if "if") (parenthesized_expression "((-local_58 & ~local_58) != 0)" (( "(") (binary_expression "(-local_58 & ~local_58) != 0" (parenthesized_expression "(-local_58 & ~local_58)" (( "(") (binary_expression "-local_58 & ~local_58" (unary_expression "-local_58" (- "-") (identifier "local_58")) (& "&") (unary_expression "~local_58" (~ "~") (identifier "local_58"))) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);\n            piVar10 = piVar14;\n          }" ({ "{") (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1e4" (* "*") (cast_expression "(code *)PTR_FUN_0012a1e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1e4"))) () ")")) (argument_list "(PTR_UINT_0012a18c + 0x40a0)" (( "(") (binary_expression "PTR_UINT_0012a18c + 0x40a0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x40a0")) () ")"))) (; ";")) (expression_statement "piVar10 = piVar14;" (assignment_expression "piVar10 = piVar14" (identifier "piVar10") (= "=") (identifier "piVar14")) (; ";")) (} "}"))) (if_statement "if (((uint)piVar10 & local_78) != 0) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }" (if "if") (parenthesized_expression "(((uint)piVar10 & local_78) != 0)" (( "(") (binary_expression "((uint)piVar10 & local_78) != 0" (parenthesized_expression "((uint)piVar10 & local_78)" (( "(") (binary_expression "(uint)piVar10 & local_78" (cast_expression "(uint)piVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar10")) (& "&") (identifier "local_78")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);\n          }" ({ "{") (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1e4" (* "*") (cast_expression "(code *)PTR_FUN_0012a1e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1e4"))) () ")")) (argument_list "(PTR_UINT_0012a18c + 0x40b4)" (( "(") (binary_expression "PTR_UINT_0012a18c + 0x40b4" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x40b4")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1 == 1) goto LAB_0004710c;" (if "if") (parenthesized_expression "(param_1 == 1)" (( "(") (binary_expression "param_1 == 1" (identifier "param_1") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0004710c;" (goto "goto") (statement_identifier "LAB_0004710c") (; ";"))) (goto_statement "goto LAB_00047084;" (goto "goto") (statement_identifier "LAB_00047084") (; ";")) (} "}"))) (expression_statement "uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);" (assignment_expression "uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078)" (identifier "uVar9") (= "=") (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1e4" (* "*") (cast_expression "(code *)PTR_FUN_0012a1e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1e4"))) () ")")) (argument_list "(PTR_UINT_0012a18c + 0x4078)" (( "(") (binary_expression "PTR_UINT_0012a18c + 0x4078" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x4078")) () ")")))) (; ";")) (} "}"))) (if_statement "if (param_1 == 1) goto LAB_000470fc;" (if "if") (parenthesized_expression "(param_1 == 1)" (( "(") (binary_expression "param_1 == 1" (identifier "param_1") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_000470fc;" (goto "goto") (statement_identifier "LAB_000470fc") (; ";"))) (labeled_statement "LAB_00047084:\n      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" (statement_identifier "LAB_00047084") (: ":") (expression_statement "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" (assignment_expression "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0)" (identifier "uVar7") (= "=") (call_expression "(*(code *)PTR_FUN_0012a490)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a490)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a490" (* "*") (cast_expression "(code *)PTR_FUN_0012a490" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a490"))) () ")")) (argument_list "(2,1,0)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);" (call_expression "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054)" (parenthesized_expression "(*(code *)PTR_FUN_0012a40c)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a40c" (* "*") (cast_expression "(code *)PTR_FUN_0012a40c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a40c"))) () ")")) (argument_list "(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054)" (( "(") (identifier "uVar7") (, ",") (number_literal "0x890c") (, ",") (identifier "auStack_80") (, ",") (binary_expression "PTR_UINT_0012a18c + 0x4054" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x4054")) () ")"))) (; ";")) (while_statement "while (local_2c != *(int *)puVar2) {\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }" (while "while") (parenthesized_expression "(local_2c != *(int *)puVar2)" (( "(") (binary_expression "local_2c != *(int *)puVar2" (identifier "local_2c") (!= "!=") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }\nLAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);\n        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);\n      }" ({ "{") (expression_statement "uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)()" (identifier "uVar9") (= "=") (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_000470fc:\n        if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }" (statement_identifier "LAB_000470fc") (: ":") (if_statement "if ((uVar9 & 4) != 0) {\n          local_58 = 0xffffffff;\n        }" (if "if") (parenthesized_expression "((uVar9 & 4) != 0)" (( "(") (binary_expression "(uVar9 & 4) != 0" (parenthesized_expression "(uVar9 & 4)" (( "(") (binary_expression "uVar9 & 4" (identifier "uVar9") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_58 = 0xffffffff;\n        }" ({ "{") (expression_statement "local_58 = 0xffffffff;" (assignment_expression "local_58 = 0xffffffff" (identifier "local_58") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (labeled_statement "LAB_0004710c:\n        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" (statement_identifier "LAB_0004710c") (: ":") (expression_statement "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);" (assignment_expression "uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0)" (identifier "uVar7") (= "=") (call_expression "(*(code *)PTR_FUN_0012a490)(2,1,0)" (parenthesized_expression "(*(code *)PTR_FUN_0012a490)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a490" (* "*") (cast_expression "(code *)PTR_FUN_0012a490" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a490"))) () ")")) (argument_list "(2,1,0)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);" (call_expression "(*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048)" (parenthesized_expression "(*(code *)PTR_FUN_0012a40c)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a40c" (* "*") (cast_expression "(code *)PTR_FUN_0012a40c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a40c"))) () ")")) (argument_list "(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048)" (( "(") (identifier "uVar7") (, ",") (number_literal "0x890b") (, ",") (identifier "auStack_80") (, ",") (binary_expression "PTR_UINT_0012a18c + 0x4048" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x4048")) () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = (*pcVar18)(puVar16,&local_94);" (assignment_expression "uVar6 = (*pcVar18)(puVar16,&local_94)" (identifier "uVar6") (= "=") (call_expression "(*pcVar18)(puVar16,&local_94)" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "(puVar16,&local_94)" (( "(") (identifier "puVar16") (, ",") (pointer_expression "&local_94" (& "&") (identifier "local_94")) () ")")))) (; ";")) (expression_statement "uVar19 = CONCAT44(uVar6,local_94);" (assignment_expression "uVar19 = CONCAT44(uVar6,local_94)" (identifier "uVar19") (= "=") (call_expression "CONCAT44(uVar6,local_94)" (identifier "CONCAT44") (argument_list "(uVar6,local_94)" (( "(") (identifier "uVar6") (, ",") (identifier "local_94") () ")")))) (; ";")) (if_statement "if ((uVar6 & 0x20) == 0) {\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }" (if "if") (parenthesized_expression "((uVar6 & 0x20) == 0)" (( "(") (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" (( "(") (binary_expression "uVar6 & 0x20" (identifier "uVar6") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar17 = (int *)local_94[-1];\n      if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }\n      local_40 = (*(code *)puVar1)(piVar17);\n      local_40 = local_40 + 1;\n      piVar10 = local_94;\n      piVar3 = local_3c;\n      goto LAB_00046fe4;\n    }" ({ "{") (expression_statement "piVar17 = (int *)local_94[-1];" (assignment_expression "piVar17 = (int *)local_94[-1]" (identifier "piVar17") (= "=") (cast_expression "(int *)local_94[-1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_94[-1]" (identifier "local_94") ([ "[") (number_literal "-1") (] "]")))) (; ";")) (if_statement "if (uVar6 != 0x10) {\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }" (if "if") (parenthesized_expression "(uVar6 != 0x10)" (( "(") (binary_expression "uVar6 != 0x10" (identifier "uVar6") (!= "!=") (number_literal "0x10")) () ")")) (compound_statement "{\n        puVar12 = (undefined *)0x12;\n        if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }\nLAB_00047208:\n        puVar5 = (undefined1 *)0x13;\n        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }\n        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);\n        piVar11 = (int *)uVar19;\n        if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }\n        goto LAB_00046fe4;\n      }" ({ "{") (expression_statement "puVar12 = (undefined *)0x12;" (assignment_expression "puVar12 = (undefined *)0x12" (identifier "puVar12") (= "=") (cast_expression "(undefined *)0x12" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x12"))) (; ";")) (if_statement "if (uVar6 == 0x11) {\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }" (if "if") (parenthesized_expression "(uVar6 == 0x11)" (( "(") (binary_expression "uVar6 == 0x11" (identifier "uVar6") (== "==") (number_literal "0x11")) () ")")) (compound_statement "{\n          if (local_58 != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,&local_90,0);\n          if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }\nLAB_00047380:\n          local_5c = local_90;\n          local_58 = local_8c;\n          piVar10 = local_94;\n          piVar14 = piVar17;\n          piVar3 = local_3c;\n          goto LAB_00046fe4;\n        }" ({ "{") (if_statement "if (local_58 != 0) goto LAB_00046ed4;" (if "if") (parenthesized_expression "(local_58 != 0)" (( "(") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00046ed4;" (goto "goto") (statement_identifier "LAB_00046ed4") (; ";"))) (expression_statement "iVar13 = (*pcVar15)(piVar17,&local_90,0);" (assignment_expression "iVar13 = (*pcVar15)(piVar17,&local_90,0)" (identifier "iVar13") (= "=") (call_expression "(*pcVar15)(piVar17,&local_90,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar17,&local_90,0)" (( "(") (identifier "piVar17") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar13 < 0) {\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }" (if "if") (parenthesized_expression "(iVar13 < 0)" (( "(") (binary_expression "iVar13 < 0" (identifier "iVar13") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            puVar12 = PTR_UINT_0012a18c + 0x4038;\n            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);\n            goto LAB_00047208;\n          }" ({ "{") (expression_statement "puVar12 = PTR_UINT_0012a18c + 0x4038;" (assignment_expression "puVar12 = PTR_UINT_0012a18c + 0x4038" (identifier "puVar12") (= "=") (binary_expression "PTR_UINT_0012a18c + 0x4038" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x4038"))) (; ";")) (expression_statement "uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);" (assignment_expression "uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17)" (identifier "uVar19") (= "=") (call_expression "(*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1e4" (* "*") (cast_expression "(code *)PTR_FUN_0012a1e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1e4"))) () ")")) (argument_list "(puVar12,piVar17)" (( "(") (identifier "puVar12") (, ",") (identifier "piVar17") () ")")))) (; ";")) (goto_statement "goto LAB_00047208;" (goto "goto") (statement_identifier "LAB_00047208") (; ";")) (} "}"))) (labeled_statement "LAB_00047380:\n          local_5c = local_90;" (statement_identifier "LAB_00047380") (: ":") (expression_statement "local_5c = local_90;" (assignment_expression "local_5c = local_90" (identifier "local_5c") (= "=") (identifier "local_90")) (; ";"))) (expression_statement "local_58 = local_8c;" (assignment_expression "local_58 = local_8c" (identifier "local_58") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" (identifier "piVar10") (= "=") (identifier "local_94")) (; ";")) (expression_statement "piVar14 = piVar17;" (assignment_expression "piVar14 = piVar17" (identifier "piVar14") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" (identifier "piVar3") (= "=") (identifier "local_3c")) (; ";")) (goto_statement "goto LAB_00046fe4;" (goto "goto") (statement_identifier "LAB_00046fe4") (; ";")) (} "}"))) (labeled_statement "LAB_00047208:\n        puVar5 = (undefined1 *)0x13;" (statement_identifier "LAB_00047208") (: ":") (expression_statement "puVar5 = (undefined1 *)0x13;" (assignment_expression "puVar5 = (undefined1 *)0x13" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)0x13" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x13"))) (; ";"))) (if_statement "if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }" (if "if") (parenthesized_expression "((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12)" (( "(") (binary_expression "(undefined *)((ulonglong)uVar19 >> 0x20) == puVar12" (cast_expression "(undefined *)((ulonglong)uVar19 >> 0x20)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (identifier "puVar12")) () ")")) (compound_statement "{\n          if ((local_4c & 2) != 0) goto LAB_00046ed4;\n          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);\n          local_4c = local_4c | 2;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n          if (iVar13 == 0) goto LAB_00046fe4;\n          if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }\n          puVar5 = PTR_UINT_0012a18c + 0x4038;\n          uVar19 = (*(code *)PTR_FUN_0012a1e4)();\n        }" ({ "{") (if_statement "if ((local_4c & 2) != 0) goto LAB_00046ed4;" (if "if") (parenthesized_expression "((local_4c & 2) != 0)" (( "(") (binary_expression "(local_4c & 2) != 0" (parenthesized_expression "(local_4c & 2)" (( "(") (binary_expression "local_4c & 2" (identifier "local_4c") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00046ed4;" (goto "goto") (statement_identifier "LAB_00046ed4") (; ";"))) (expression_statement "iVar13 = (*pcVar15)(piVar17,auStack_6c,1);" (assignment_expression "iVar13 = (*pcVar15)(piVar17,auStack_6c,1)" (identifier "iVar13") (= "=") (call_expression "(*pcVar15)(piVar17,auStack_6c,1)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar17,auStack_6c,1)" (( "(") (identifier "piVar17") (, ",") (identifier "auStack_6c") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "local_4c = local_4c | 2;" (assignment_expression "local_4c = local_4c | 2" (identifier "local_4c") (= "=") (binary_expression "local_4c | 2" (identifier "local_4c") (| "|") (number_literal "2"))) (; ";")) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" (identifier "piVar10") (= "=") (identifier "local_94")) (; ";")) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" (identifier "piVar3") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (iVar13 == 0) goto LAB_00046fe4;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00046fe4;" (goto "goto") (statement_identifier "LAB_00046fe4") (; ";"))) (if_statement "if (-1 < iVar13) {\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }" (if "if") (parenthesized_expression "(-1 < iVar13)" (( "(") (binary_expression "-1 < iVar13" (number_literal "-1") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);\n            goto LAB_00047380;\n          }" ({ "{") (expression_statement "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);" (call_expression "(*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17)" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1e4" (* "*") (cast_expression "(code *)PTR_FUN_0012a1e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1e4"))) () ")")) (argument_list "(PTR_UINT_0012a18c + 0x4060,piVar17)" (( "(") (binary_expression "PTR_UINT_0012a18c + 0x4060" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x4060")) (, ",") (identifier "piVar17") () ")"))) (; ";")) (goto_statement "goto LAB_00047380;" (goto "goto") (statement_identifier "LAB_00047380") (; ";")) (} "}"))) (expression_statement "puVar5 = PTR_UINT_0012a18c + 0x4038;" (assignment_expression "puVar5 = PTR_UINT_0012a18c + 0x4038" (identifier "puVar5") (= "=") (binary_expression "PTR_UINT_0012a18c + 0x4038" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x4038"))) (; ";")) (expression_statement "uVar19 = (*(code *)PTR_FUN_0012a1e4)();" (assignment_expression "uVar19 = (*(code *)PTR_FUN_0012a1e4)()" (identifier "uVar19") (= "=") (call_expression "(*(code *)PTR_FUN_0012a1e4)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a1e4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a1e4" (* "*") (cast_expression "(code *)PTR_FUN_0012a1e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a1e4"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);" (assignment_expression "puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20)" (identifier "puVar8") (= "=") (cast_expression "(undefined1 *)((ulonglong)uVar19 >> 0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "piVar11 = (int *)uVar19;" (assignment_expression "piVar11 = (int *)uVar19" (identifier "piVar11") (= "=") (cast_expression "(int *)uVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar19"))) (; ";")) (if_statement "if (puVar8 == puVar5) {\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" (if "if") (parenthesized_expression "(puVar8 == puVar5)" (( "(") (binary_expression "puVar8 == puVar5" (identifier "puVar8") (== "==") (identifier "puVar5")) () ")")) (compound_statement "{\n          local_4c = local_4c | 0x40;\n          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }" ({ "{") (expression_statement "local_4c = local_4c | 0x40;" (assignment_expression "local_4c = local_4c | 0x40" (identifier "local_4c") (= "=") (binary_expression "local_4c | 0x40" (identifier "local_4c") (| "|") (number_literal "0x40"))) (; ";")) (expression_statement "local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);" (assignment_expression "local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000)" (identifier "local_38") (= "=") (call_expression "(*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000)" (parenthesized_expression "(*(code *)PTR_FUN_0012a3ec)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a3ec" (* "*") (cast_expression "(code *)PTR_FUN_0012a3ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a3ec"))) () ")")) (argument_list "(piVar17,0x40,0x8000)" (( "(") (identifier "piVar17") (, ",") (number_literal "0x40") (, ",") (number_literal "0x8000") () ")")))) (; ";")) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" (identifier "piVar10") (= "=") (identifier "local_94")) (; ";")) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" (identifier "piVar3") (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" (else "else") (if_statement "if (puVar8 == &DAT_00000014) {\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" (if "if") (parenthesized_expression "(puVar8 == &DAT_00000014)" (( "(") (binary_expression "puVar8 == &DAT_00000014" (identifier "puVar8") (== "==") (pointer_expression "&DAT_00000014" (& "&") (identifier "DAT_00000014"))) () ")")) (compound_statement "{\n          local_4c = local_4c | 0x80;\n          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }" ({ "{") (expression_statement "local_4c = local_4c | 0x80;" (assignment_expression "local_4c = local_4c | 0x80" (identifier "local_4c") (= "=") (binary_expression "local_4c | 0x80" (identifier "local_4c") (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);" (assignment_expression "local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff)" (identifier "local_34") (= "=") (call_expression "(*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff)" (parenthesized_expression "(*(code *)PTR_FUN_0012a3ec)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a3ec" (* "*") (cast_expression "(code *)PTR_FUN_0012a3ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a3ec"))) () ")")) (argument_list "(piVar17,0x80,0x7fffffff)" (( "(") (identifier "piVar17") (, ",") (number_literal "0x80") (, ",") (number_literal "0x7fffffff") () ")")))) (; ";")) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" (identifier "piVar10") (= "=") (identifier "local_94")) (; ";")) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" (identifier "piVar3") (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" (else "else") (if_statement "if (puVar8 == (undefined1 *)0x15) {\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }\n        else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" (if "if") (parenthesized_expression "(puVar8 == (undefined1 *)0x15)" (( "(") (binary_expression "puVar8 == (undefined1 *)0x15" (identifier "puVar8") (== "==") (cast_expression "(undefined1 *)0x15" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x15"))) () ")")) (compound_statement "{\n          local_4c = local_4c | 0x100;\n          local_30 = (*(code *)puVar1)(piVar17);\n          uVar6 = (*(code *)PTR_FUN_0012a5b4)();\n          local_30 = (short)(uVar6 / 100) * local_30;\n          piVar10 = local_94;\n          piVar3 = local_3c;\n        }" ({ "{") (expression_statement "local_4c = local_4c | 0x100;" (assignment_expression "local_4c = local_4c | 0x100" (identifier "local_4c") (= "=") (binary_expression "local_4c | 0x100" (identifier "local_4c") (| "|") (number_literal "0x100"))) (; ";")) (expression_statement "local_30 = (*(code *)puVar1)(piVar17);" (assignment_expression "local_30 = (*(code *)puVar1)(piVar17)" (identifier "local_30") (= "=") (call_expression "(*(code *)puVar1)(piVar17)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(piVar17)" (( "(") (identifier "piVar17") () ")")))) (; ";")) (expression_statement "uVar6 = (*(code *)PTR_FUN_0012a5b4)();" (assignment_expression "uVar6 = (*(code *)PTR_FUN_0012a5b4)()" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_FUN_0012a5b4)()" (parenthesized_expression "(*(code *)PTR_FUN_0012a5b4)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a5b4" (* "*") (cast_expression "(code *)PTR_FUN_0012a5b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a5b4"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_30 = (short)(uVar6 / 100) * local_30;" (assignment_expression "local_30 = (short)(uVar6 / 100) * local_30" (identifier "local_30") (= "=") (binary_expression "(short)(uVar6 / 100) * local_30" (cast_expression "(short)(uVar6 / 100)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "(uVar6 / 100)" (( "(") (binary_expression "uVar6 / 100" (identifier "uVar6") (/ "/") (number_literal "100")) () ")"))) (* "*") (identifier "local_30"))) (; ";")) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" (identifier "piVar10") (= "=") (identifier "local_94")) (; ";")) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" (identifier "piVar3") (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else {\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" (else "else") (compound_statement "{\n          if (local_3c != (int *)0x0) goto LAB_00046ed4;\n          piVar10 = piVar11;\n          piVar3 = piVar17;\n          if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }\n        }" ({ "{") (if_statement "if (local_3c != (int *)0x0) goto LAB_00046ed4;" (if "if") (parenthesized_expression "(local_3c != (int *)0x0)" (( "(") (binary_expression "local_3c != (int *)0x0" (identifier "local_3c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00046ed4;" (goto "goto") (statement_identifier "LAB_00046ed4") (; ";"))) (expression_statement "piVar10 = piVar11;" (assignment_expression "piVar10 = piVar11" (identifier "piVar10") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "piVar3 = piVar17;" (assignment_expression "piVar3 = piVar17" (identifier "piVar3") (= "=") (identifier "piVar17")) (; ";")) (if_statement "if (puVar8 != (undefined1 *)0x16) {\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }" (if "if") (parenthesized_expression "(puVar8 != (undefined1 *)0x16)" (( "(") (binary_expression "puVar8 != (undefined1 *)0x16" (identifier "puVar8") (!= "!=") (cast_expression "(undefined1 *)0x16" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x16"))) () ")")) (compound_statement "{\n            piVar10 = piVar11 + 1;\n            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;\n            piVar3 = (int *)*piVar11;\n          }" ({ "{") (expression_statement "piVar10 = piVar11 + 1;" (assignment_expression "piVar10 = piVar11 + 1" (identifier "piVar10") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))\n            goto LAB_00046ed4;" (if "if") (parenthesized_expression "((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))" (( "(") (binary_expression "(puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0)" (parenthesized_expression "(puVar8 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar8 != (undefined1 *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_94 = piVar10, piVar11[1] != 0)" (( "(") (comma_expression "local_94 = piVar10, piVar11[1] != 0" (assignment_expression "local_94 = piVar10" (identifier "local_94") (= "=") (identifier "piVar10")) (, ",") (binary_expression "piVar11[1] != 0" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00046ed4;" (goto "goto") (statement_identifier "LAB_00046ed4") (; ";"))) (expression_statement "piVar3 = (int *)*piVar11;" (assignment_expression "piVar3 = (int *)*piVar11" (identifier "piVar3") (= "=") (cast_expression "(int *)*piVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar11" (* "*") (identifier "piVar11")))) (; ";")) (} "}"))) (} "}")))))))) (goto_statement "goto LAB_00046fe4;" (goto "goto") (statement_identifier "LAB_00046fe4") (; ";")) (} "}"))) (expression_statement "local_40 = (*(code *)puVar1)(piVar17);" (assignment_expression "local_40 = (*(code *)puVar1)(piVar17)" (identifier "local_40") (= "=") (call_expression "(*(code *)puVar1)(piVar17)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(piVar17)" (( "(") (identifier "piVar17") () ")")))) (; ";")) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" (identifier "local_40") (= "=") (binary_expression "local_40 + 1" (identifier "local_40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" (identifier "piVar10") (= "=") (identifier "local_94")) (; ";")) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" (identifier "piVar3") (= "=") (identifier "local_3c")) (; ";")) (goto_statement "goto LAB_00046fe4;" (goto "goto") (statement_identifier "LAB_00046fe4") (; ";")) (} "}"))) (expression_statement "local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;" (assignment_expression "local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c" (identifier "local_4c") (= "=") (binary_expression "*(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c" (pointer_expression "*(ushort *)(puVar4 + (uVar6 & 3) * 2)" (* "*") (cast_expression "(ushort *)(puVar4 + (uVar6 & 3) * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + (uVar6 & 3) * 2)" (( "(") (binary_expression "puVar4 + (uVar6 & 3) * 2" (identifier "puVar4") (+ "+") (binary_expression "(uVar6 & 3) * 2" (parenthesized_expression "(uVar6 & 3)" (( "(") (binary_expression "uVar6 & 3" (identifier "uVar6") (& "&") (number_literal "3")) () ")")) (* "*") (number_literal "2"))) () ")")))) (| "|") (identifier "local_4c"))) (; ";")) (expression_statement "piVar10 = local_94;" (assignment_expression "piVar10 = local_94" (identifier "piVar10") (= "=") (identifier "local_94")) (; ";")) (expression_statement "piVar3 = local_3c;" (assignment_expression "piVar3 = local_3c" (identifier "piVar3") (= "=") (identifier "local_3c")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (unary_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (number_literal) (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (number_literal) (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (true)))))))

void MASKED(int param_1,int *param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int *piVar3;
  undefined *puVar4;
  undefined1 *puVar5;
  uint uVar6;
  ushort uVar9;
  undefined4 uVar7;
  undefined1 *puVar8;
  int *piVar10;
  int *piVar11;
  undefined *puVar12;
  int iVar13;
  int *piVar14;
  code *pcVar15;
  undefined *puVar16;
  int *piVar17;
  code *pcVar18;
  undefined8 uVar19;
  int *local_94;
  undefined4 local_90;
  uint local_8c;
  undefined1 auStack_80 [4];
  undefined1 auStack_7c [4];
  uint local_78;
  undefined1 auStack_6c [16];
  undefined4 local_5c;
  uint local_58;
  ushort local_4c;
  short local_40;
  int *local_3c;
  undefined4 local_38;
  undefined4 local_34;
  short local_30;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0012b14c;
  pcVar18 = (code *)(PTR_LAB_0012a49c + 0x64d0);
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  local_94 = param_2;
  puVar4 = (undefined *)FUN_000464d0(PTR_FUN_0012a1a8 + 0x5e60,&local_94);
  piVar14 = local_94;
  if (*local_94 != 0) goto LAB_00046ee0;
LAB_00046ed4:
  (*(code *)PTR_FUN_0012a1dc)();
LAB_00046ee0:
  (*(code *)PTR_memset_0012aebc)(auStack_80,0,0x54);
  local_94 = piVar14 + 1;
  iVar13 = *piVar14;
  puVar5 = (undefined1 *)(*(code *)PTR_strchr_0012af54)(iVar13,0x2f);
  pcVar15 = (code *)PTR_FUN_0012a540;
  if (puVar5 == (undefined1 *)0x0) goto LAB_00046f8c;
  uVar6 = (*(code *)PTR_FUN_0012a3ec)(puVar5 + 1,0,0x20);
  local_58 = ~(0xffffffffU >> (uVar6 & 0x1f));
  *puVar5 = 0;
  local_5c = CONCAT22(2,local_5c._2_2_);
  uVar6 = (*pcVar15)(iVar13,auStack_7c,(uint)puVar4 & 2);
  if ((int)uVar6 < 0) {
    do {
      (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4038,iVar13);
LAB_00046f8c:
      pcVar15 = (code *)PTR_FUN_0012a540;
      uVar6 = (*(code *)PTR_FUN_0012a540)(iVar13,auStack_7c,(uint)puVar4 & 2);
    } while ((int)uVar6 < 0);
    piVar14 = (int *)(PTR_UINT_0012a18c + 0x2bbc);
  }
  else {
    piVar14 = (int *)0x0;
    *puVar5 = 0x2f;
  }
  puVar1 = PTR_FUN_0012a3a4;
  if (puVar4 != (undefined *)0x0) {
    uVar6 = (uint)puVar4 & 1;
  }
  local_4c = 5;
  if (uVar6 != 0) {
    local_4c = 1;
  }
  puVar16 = PTR_FUN_0012a1a8 + 0x5df8;
  puVar4 = PTR_UINT_0012a18c + 0x4218;
  piVar10 = local_94;
  piVar3 = local_3c;
LAB_00046fe4:
  do {
    local_3c = piVar3;
    if (*piVar10 == 0) {
      if (((local_4c & 0x200) != 0) && (local_3c == (int *)0x0)) {
        local_3c = (int *)(PTR_FUN_0012a1a8 + -0x56d0);
      }
      uVar9 = local_4c;
      if (local_58 != 0) {
        if ((local_4c & 4) == 0) {
          piVar10 = (int *)~local_58;
          if ((-local_58 & ~local_58) != 0) {
            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40a0);
            piVar10 = piVar14;
          }
          if (((uint)piVar10 & local_78) != 0) {
            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x40b4);
          }
          if (param_1 == 1) goto LAB_0004710c;
          goto LAB_00047084;
        }
        uVar9 = (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4078);
      }
      if (param_1 == 1) goto LAB_000470fc;
LAB_00047084:
      uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);
      (*(code *)PTR_FUN_0012a40c)(uVar7,0x890c,auStack_80,PTR_UINT_0012a18c + 0x4054);
      while (local_2c != *(int *)puVar2) {
        uVar9 = (*(code *)PTR___stack_chk_fail_0012b0c8)();
LAB_000470fc:
        if ((uVar9 & 4) != 0) {
          local_58 = 0xffffffff;
        }
LAB_0004710c:
        uVar7 = (*(code *)PTR_FUN_0012a490)(2,1,0);
        (*(code *)PTR_FUN_0012a40c)(uVar7,0x890b,auStack_80,PTR_UINT_0012a18c + 0x4048);
      }
      return;
    }
    uVar6 = (*pcVar18)(puVar16,&local_94);
    uVar19 = CONCAT44(uVar6,local_94);
    if ((uVar6 & 0x20) == 0) {
      piVar17 = (int *)local_94[-1];
      if (uVar6 != 0x10) {
        puVar12 = (undefined *)0x12;
        if (uVar6 == 0x11) {
          if (local_58 != 0) goto LAB_00046ed4;
          iVar13 = (*pcVar15)(piVar17,&local_90,0);
          if (iVar13 < 0) {
            puVar12 = PTR_UINT_0012a18c + 0x4038;
            uVar19 = (*(code *)PTR_FUN_0012a1e4)(puVar12,piVar17);
            goto LAB_00047208;
          }
LAB_00047380:
          local_5c = local_90;
          local_58 = local_8c;
          piVar10 = local_94;
          piVar14 = piVar17;
          piVar3 = local_3c;
          goto LAB_00046fe4;
        }
LAB_00047208:
        puVar5 = (undefined1 *)0x13;
        if ((undefined *)((ulonglong)uVar19 >> 0x20) == puVar12) {
          if ((local_4c & 2) != 0) goto LAB_00046ed4;
          iVar13 = (*pcVar15)(piVar17,auStack_6c,1);
          local_4c = local_4c | 2;
          piVar10 = local_94;
          piVar3 = local_3c;
          if (iVar13 == 0) goto LAB_00046fe4;
          if (-1 < iVar13) {
            (*(code *)PTR_FUN_0012a1e4)(PTR_UINT_0012a18c + 0x4060,piVar17);
            goto LAB_00047380;
          }
          puVar5 = PTR_UINT_0012a18c + 0x4038;
          uVar19 = (*(code *)PTR_FUN_0012a1e4)();
        }
        puVar8 = (undefined1 *)((ulonglong)uVar19 >> 0x20);
        piVar11 = (int *)uVar19;
        if (puVar8 == puVar5) {
          local_4c = local_4c | 0x40;
          local_38 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x40,0x8000);
          piVar10 = local_94;
          piVar3 = local_3c;
        }
        else if (puVar8 == &DAT_00000014) {
          local_4c = local_4c | 0x80;
          local_34 = (*(code *)PTR_FUN_0012a3ec)(piVar17,0x80,0x7fffffff);
          piVar10 = local_94;
          piVar3 = local_3c;
        }
        else if (puVar8 == (undefined1 *)0x15) {
          local_4c = local_4c | 0x100;
          local_30 = (*(code *)puVar1)(piVar17);
          uVar6 = (*(code *)PTR_FUN_0012a5b4)();
          local_30 = (short)(uVar6 / 100) * local_30;
          piVar10 = local_94;
          piVar3 = local_3c;
        }
        else {
          if (local_3c != (int *)0x0) goto LAB_00046ed4;
          piVar10 = piVar11;
          piVar3 = piVar17;
          if (puVar8 != (undefined1 *)0x16) {
            piVar10 = piVar11 + 1;
            if ((puVar8 != (undefined1 *)0x0) || (local_94 = piVar10, piVar11[1] != 0))
            goto LAB_00046ed4;
            piVar3 = (int *)*piVar11;
          }
        }
        goto LAB_00046fe4;
      }
      local_40 = (*(code *)puVar1)(piVar17);
      local_40 = local_40 + 1;
      piVar10 = local_94;
      piVar3 = local_3c;
      goto LAB_00046fe4;
    }
    local_4c = *(ushort *)(puVar4 + (uVar6 & 3) * 2) | local_4c;
    piVar10 = local_94;
    piVar3 = local_3c;
  } while( true );
}

