
bfd_boolean get_32bit_section_headers(Filedata *filedata,bfd_boolean probe)

{
  undefined *puVar1;
  void *pvVar2;
  Elf_Internal_Shdr *pEVar3;
  undefined4 uVar4;
  Filedata *filedata_1;
  uint extraout_v1;
  uint extraout_v1_00;
  uint extraout_v1_01;
  uint extraout_v1_02;
  char *reason;
  uint uVar5;
  void *pvVar6;
  uint uVar7;
  undefined *puVar8;
  code *pcVar9;
  undefined *puVar10;
  bfd_vma bVar11;
  file_ptr fVar12;
  bfd_size_type bVar13;
  
  uVar5 = (filedata->file_header).e_shentsize;
  if (probe == 0) {
    if (uVar5 == 0) {
      return 0;
    }
    uVar7 = (filedata->file_header).e_shnum;
    if (uVar7 == 0) {
      return 0;
    }
    if (uVar5 < 0x28) {
      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);
      (*(code *)PTR_error_000c3398)(uVar4);
      return 0;
    }
    if (uVar5 != 0x28) {
      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);
      (*(code *)PTR_warn_000c33a4)(uVar4);
    }
    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);
    filedata_1 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);
  }
  else {
    filedata_1 = (Filedata *)0x0;
    if (uVar5 < 0x28) {
      return 0;
    }
    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);
    uVar7 = 1;
  }
  pvVar2 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,
                    (ulonglong)uVar5,(ulonglong)uVar7,reason,filedata_1);
  if (pvVar2 != (void *)0x0) {
    (*(code *)PTR_free_000c3620)(filedata->section_headers);
    pEVar3 = (Elf_Internal_Shdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48);
    filedata->section_headers = pEVar3;
    puVar1 = PTR_byte_get_000c3394;
    if (pEVar3 != (Elf_Internal_Shdr *)0x0) {
      uVar5 = 0;
      puVar10 = PTR_s_TADECL_000c3390 + -0xf2c;
      puVar8 = PTR_s_TADECL_000c3390 + -0xf60;
      pvVar6 = pvVar2;
      do {
        (**(code **)puVar1)(pvVar6,4);
        pcVar9 = *(code **)puVar1;
        pEVar3->sh_name = extraout_v1;
        (*pcVar9)((int)pvVar6 + 4,4);
        pcVar9 = *(code **)puVar1;
        pEVar3->sh_type = extraout_v1_00;
        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);
        pcVar9 = *(code **)puVar1;
        pEVar3->sh_flags = bVar11;
        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);
        pcVar9 = *(code **)puVar1;
        pEVar3->sh_addr = bVar11;
        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);
        pcVar9 = *(code **)puVar1;
        pEVar3->sh_offset = fVar12;
        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);
        pcVar9 = *(code **)puVar1;
        pEVar3->sh_size = bVar13;
        (*pcVar9)((int)pvVar6 + 0x18,4);
        pcVar9 = *(code **)puVar1;
        pEVar3->sh_link = extraout_v1_01;
        (*pcVar9)((int)pvVar6 + 0x1c,4);
        pcVar9 = *(code **)puVar1;
        pEVar3->sh_info = extraout_v1_02;
        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);
        pcVar9 = *(code **)puVar1;
        pEVar3->sh_addralign = bVar11;
        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);
        pEVar3->sh_entsize = bVar13;
        if (probe == 0) {
          if (uVar7 < pEVar3->sh_link) {
            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);
            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);
          }
          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {
            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);
            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);
          }
        }
        uVar5 = uVar5 + 1;
        pEVar3 = pEVar3 + 1;
        pvVar6 = (void *)((int)pvVar6 + 0x28);
      } while (uVar5 != uVar7);
      (*(code *)PTR_free_000c3620)(pvVar2);
      return 1;
    }
    if (probe == 0) {
      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);
      (*(code *)PTR_error_000c3398)(uVar4,uVar7);
    }
  }
  return 0;
}



undefined4 FUN_00023dac(int param_1,int param_2)

{
  undefined *puVar1;
  int iVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  undefined4 extraout_v1;
  undefined4 extraout_v1_00;
  undefined4 extraout_v1_01;
  undefined4 extraout_v1_02;
  undefined4 uVar5;
  uint uVar6;
  int iVar7;
  uint uVar8;
  undefined *puVar9;
  code *pcVar10;
  undefined *puVar11;
  undefined8 uVar12;
  
  uVar6 = *(uint *)(param_1 + 0x50);
  if (param_2 == 0) {
    if (uVar6 == 0) {
      return 0;
    }
    uVar8 = *(uint *)(param_1 + 0x54);
    if (uVar8 == 0) {
      return 0;
    }
    if (uVar6 < 0x28) {
      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);
      (*(code *)PTR_error_000c3398)(uVar4);
      return 0;
    }
    if (uVar6 != 0x28) {
      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);
      (*(code *)PTR_warn_000c33a4)(uVar4);
    }
    uVar5 = *(undefined4 *)(param_1 + 0x34);
    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);
  }
  else {
    uVar4 = 0;
    if (uVar6 < 0x28) {
      return 0;
    }
    uVar5 = *(undefined4 *)(param_1 + 0x34);
    uVar8 = 1;
  }
  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);
  if (iVar2 != 0) {
    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));
    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);
    *(undefined4 **)(param_1 + 0x60) = puVar3;
    puVar1 = PTR_byte_get_000c3394;
    if (puVar3 != (undefined4 *)0x0) {
      uVar6 = 0;
      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;
      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;
      iVar7 = iVar2;
      do {
        (**(code **)puVar1)(iVar7,4);
        pcVar10 = *(code **)puVar1;
        *puVar3 = extraout_v1;
        (*pcVar10)(iVar7 + 4,4);
        pcVar10 = *(code **)puVar1;
        puVar3[1] = extraout_v1_00;
        uVar12 = (*pcVar10)(iVar7 + 8,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 2) = uVar12;
        uVar12 = (*pcVar10)(iVar7 + 0xc,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 4) = uVar12;
        uVar12 = (*pcVar10)(iVar7 + 0x10,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 6) = uVar12;
        uVar12 = (*pcVar10)(iVar7 + 0x14,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 8) = uVar12;
        (*pcVar10)(iVar7 + 0x18,4);
        pcVar10 = *(code **)puVar1;
        puVar3[10] = extraout_v1_01;
        (*pcVar10)(iVar7 + 0x1c,4);
        pcVar10 = *(code **)puVar1;
        puVar3[0xb] = extraout_v1_02;
        uVar12 = (*pcVar10)(iVar7 + 0x20,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 0xc) = uVar12;
        uVar12 = (*pcVar10)(iVar7 + 0x24,4);
        *(undefined8 *)(puVar3 + 0xe) = uVar12;
        if (param_2 == 0) {
          if (uVar8 < (uint)puVar3[10]) {
            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);
            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);
          }
          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {
            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);
            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);
          }
        }
        uVar6 = uVar6 + 1;
        puVar3 = puVar3 + 0x12;
        iVar7 = iVar7 + 0x28;
      } while (uVar6 != uVar8);
      (*(code *)PTR_free_000c3620)(iVar2);
      return 1;
    }
    if (param_2 == 0) {
      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);
      (*(code *)PTR_error_000c3398)(uVar4,uVar8);
    }
  }
  return 0;
}


lui gp,0xa
addiu gp,gp,0x75a4
addu gp,gp,t9
addiu sp,sp,-0x60
sw gp,0x28(sp)
sw s5,0x4c(sp)
or s5,a1,zero
sw s1,0x3c(sp)
or s1,a0,zero
sw s0,0x38(sp)
sw ra,0x5c(sp)
sw s8,0x58(sp)
sw s7,0x54(sp)
sw s6,0x50(sp)
sw s4,0x48(sp)
sw s3,0x44(sp)
sw s2,0x40(sp)
bne a1,zero,0x00023e40
_lw s0,0x50(a0)
beq s0,zero,0x00023e10
_or v0,zero,zero
lw s4,0x54(a0)
bne s4,zero,0x00024038
_sltiu v0,s0,0x28
or v0,zero,zero
lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
sltiu v0,s0,0x28
bne v0,zero,0x00023e10
_or v0,zero,zero
lw a3,0x34(a0)
li s4,0x1
li s2,0x1
lw t9,-0x7fb0(gp)
addiu a2,s1,0x8
addiu a1,s1,0x4
sw v0,0x20(sp)
or a0,zero,zero
sw zero,0x18(sp)
addiu t9,t9,0x253c
sw s2,0x1c(sp)
sw zero,0x10(sp)
bal 0x0002253c
_sw s0,0x14(sp)
lw gp,0x28(sp)
beq v0,zero,0x00023e0c
_or s6,v0,zero
lw t9,-0x7d30(gp)
jalr t9
_lw a0,0x60(s1)
li a1,0x48
lw gp,0x28(sp)
lw t9,-0x7f98(gp)
jalr t9
_or a0,s4,zero
lw gp,0x28(sp)
or s0,v0,zero
beq v0,zero,0x00024144
_sw v0,0x60(s1)
lw s8,-0x7fc0(gp)
or s3,zero,zero
lw s7,-0x7fc0(gp)
or s1,s6,zero
lw s2,-0x7fbc(gp)
addiu s8,s8,-0xf2c
b 0x00023f10
_addiu s7,s7,-0xf60
lw v0,0xc(s0)
andi v0,v0,0x40
beq v0,zero,0x00023f00
_nop
lw v0,0x2c(s0)
sltu v0,s4,v0
bne v0,zero,0x000240bc
_lw t9,-0x7d44(gp)
addiu s3,s3,0x1
addiu s0,s0,0x48
beq s3,s4,0x0002407c
_addiu s1,s1,0x28
lw t9,0x0(s2)
li a1,0x4
jalr t9
_or a0,s1,zero
addiu a0,s1,0x4
lw t9,0x0(s2)
li a1,0x4
jalr t9
_sw v1,0x0(s0)
addiu a0,s1,0x8
lw t9,0x0(s2)
li a1,0x4
jalr t9
_sw v1,0x4(s0)
addiu a0,s1,0xc
lw t9,0x0(s2)
li a1,0x4
sw v1,0xc(s0)
jalr t9
_sw v0,0x8(s0)
addiu a0,s1,0x10
lw t9,0x0(s2)
li a1,0x4
sw v1,0x14(s0)
jalr t9
_sw v0,0x10(s0)
addiu a0,s1,0x14
lw t9,0x0(s2)
li a1,0x4
sw v1,0x1c(s0)
jalr t9
_sw v0,0x18(s0)
addiu a0,s1,0x18
lw t9,0x0(s2)
li a1,0x4
sw v1,0x24(s0)
jalr t9
_sw v0,0x20(s0)
addiu a0,s1,0x1c
lw t9,0x0(s2)
li a1,0x4
jalr t9
_sw v1,0x28(s0)
addiu a0,s1,0x20
lw t9,0x0(s2)
li a1,0x4
jalr t9
_sw v1,0x2c(s0)
addiu a0,s1,0x24
lw t9,0x0(s2)
li a1,0x4
sw v1,0x34(s0)
jalr t9
_sw v0,0x30(s0)
lw gp,0x28(sp)
sw v1,0x3c(s0)
bne s5,zero,0x00023f00
_sw v0,0x38(s0)
lw v0,0x28(s0)
sltu v0,s4,v0
beq v0,zero,0x00023ee0
_lw t9,-0x7d44(gp)
li a2,0x5
or a0,zero,zero
jalr t9
_or a1,s7,zero
or a1,s3,zero
lw gp,0x28(sp)
or a0,v0,zero
lw t9,-0x7fac(gp)
jalr t9
_lw a2,0x28(s0)
b 0x00023ee0
_lw gp,0x28(sp)
bne v0,zero,0x000240ec
_lw a1,-0x7fc0(gp)
li v0,0x28
bne s0,v0,0x00024118
_lw a1,-0x7fc0(gp)
lw a1,-0x7fc0(gp)
li a2,0x5
lw a3,0x34(s1)
or a0,zero,zero
lw t9,-0x7d44(gp)
or s2,s4,zero
addiu a1,a1,-0xef8
jalr t9
_sw a3,0x30(sp)
lw gp,0x28(sp)
b 0x00023e58
_lw a3,0x30(sp)
lw t9,-0x7d30(gp)
jalr t9
_or a0,s6,zero
li v0,0x1
lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
li a2,0x5
or a0,zero,zero
jalr t9
_or a1,s8,zero
or a1,s3,zero
lw gp,0x28(sp)
or a0,v0,zero
lw t9,-0x7fac(gp)
jalr t9
_lw a2,0x2c(s0)
b 0x00023f00
_lw gp,0x28(sp)
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,-0x1040
lw gp,0x28(sp)
lw t9,-0x7fb8(gp)
jalr t9
_or a0,v0,zero
b 0x00023e10
_or v0,zero,zero
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,-0xfe8
lw gp,0x28(sp)
lw t9,-0x7fac(gp)
jalr t9
_or a0,v0,zero
b 0x0002404c
_lw gp,0x28(sp)
bne s5,zero,0x00023e0c
_lw a1,-0x7fc0(gp)
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,-0xf8c
or a1,s4,zero
lw gp,0x28(sp)
lw t9,-0x7fb8(gp)
jalr t9
_or a0,v0,zero
b 0x00023e10
_or v0,zero,zero
(translation_unit "undefined4 FUN_00023dac(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  undefined8 uVar12;\n  \n  uVar6 = *(uint *)(param_1 + 0x50);\n  if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }\n  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);\n  if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_00023dac(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  undefined8 uVar12;\n  \n  uVar6 = *(uint *)(param_1 + 0x50);\n  if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }\n  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);\n  if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00023dac(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 identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  undefined8 uVar12;\n  \n  uVar6 = *(uint *)(param_1 + 0x50);\n  if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }\n  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);\n  if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }\n  return 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "undefined4 extraout_v1_00;" type_identifier identifier ;) (declaration "undefined4 extraout_v1_01;" type_identifier identifier ;) (declaration "undefined4 extraout_v1_02;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (expression_statement "uVar6 = *(uint *)(param_1 + 0x50);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0x50)" identifier = (pointer_expression "*(uint *)(param_1 + 0x50)" * (cast_expression "(uint *)(param_1 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }" { (if_statement "if (uVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar8 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar8 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }" if (parenthesized_expression "(uVar6 < 0x28)" ( (binary_expression "uVar6 < 0x28" identifier < number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0x1040,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0x1040" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_000c3398)(uVar4);" (call_expression "(*(code *)PTR_error_000c3398)(uVar4)" (parenthesized_expression "(*(code *)PTR_error_000c3398)" ( (pointer_expression "*(code *)PTR_error_000c3398" * (cast_expression "(code *)PTR_error_000c3398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }" if (parenthesized_expression "(uVar6 != 0x28)" ( (binary_expression "uVar6 != 0x28" identifier != number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0xfe8" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4)" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" ( (pointer_expression "*(code *)PTR_warn_000c33a4" * (cast_expression "(code *)PTR_warn_000c33a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xef8,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0xef8" identifier + number_literal) , number_literal )))) ;) }) (else_clause "else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }" else (compound_statement "{\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (uVar6 < 0x28) {\n      return 0;\n    }" if (parenthesized_expression "(uVar6 < 0x28)" ( (binary_expression "uVar6 < 0x28" identifier < number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);" (assignment_expression "iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4)" identifier = (call_expression "FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4)" identifier (argument_list "(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4)" ( number_literal , (binary_expression "param_1 + 4" identifier + number_literal) , (binary_expression "param_1 + 8" identifier + number_literal) , identifier , number_literal , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }" { (expression_statement "(*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));" (call_expression "(*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60))" (parenthesized_expression "(*(code *)PTR_free_000c3620)" ( (pointer_expression "*(code *)PTR_free_000c3620" * (cast_expression "(code *)PTR_free_000c3620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x60))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) ))) ;) (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48)" (parenthesized_expression "(*(code *)PTR_cmalloc_000c33b8)" ( (pointer_expression "*(code *)PTR_cmalloc_000c33b8" * (cast_expression "(code *)PTR_cmalloc_000c33b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,0x48)" ( identifier , number_literal ))))) ;) (expression_statement "*(undefined4 **)(param_1 + 0x60) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 0x60) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 0x60)" * (cast_expression "(undefined4 **)(param_1 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = PTR_byte_get_000c3394;" (assignment_expression "puVar1 = PTR_byte_get_000c3394" identifier = identifier) ;) (if_statement "if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }" if (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" ( (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;" (assignment_expression "puVar11 = PTR_s_TADECL_000c3390 + -0xf2c" identifier = (binary_expression "PTR_s_TADECL_000c3390 + -0xf2c" identifier + number_literal)) ;) (expression_statement "puVar9 = PTR_s_TADECL_000c3390 + -0xf60;" (assignment_expression "puVar9 = PTR_s_TADECL_000c3390 + -0xf60" identifier = (binary_expression "PTR_s_TADECL_000c3390 + -0xf60" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar2;" (assignment_expression "iVar7 = iVar2" identifier = identifier) ;) (do_statement "do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);" do (compound_statement "{\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      }" { (expression_statement "(**(code **)puVar1)(iVar7,4);" (call_expression "(**(code **)puVar1)(iVar7,4)" (parenthesized_expression "(**(code **)puVar1)" ( (pointer_expression "**(code **)puVar1" * (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(iVar7,4)" ( identifier , number_literal ))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*puVar3 = extraout_v1;" (assignment_expression "*puVar3 = extraout_v1" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "(*pcVar10)(iVar7 + 4,4);" (call_expression "(*pcVar10)(iVar7 + 4,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 4,4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) , number_literal ))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar3[1] = extraout_v1_00;" (assignment_expression "puVar3[1] = extraout_v1_00" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 8,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 8,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 8,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 8,4)" ( (binary_expression "iVar7 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 2) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 2) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 2)" * (cast_expression "(undefined8 *)(puVar3 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0xc,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0xc,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0xc,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0xc,4)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 4) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 4) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 4)" * (cast_expression "(undefined8 *)(puVar3 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x10,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x10,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0x10,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x10,4)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 6) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 6) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 6)" * (cast_expression "(undefined8 *)(puVar3 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 6)" ( (binary_expression "puVar3 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x14,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x14,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0x14,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x14,4)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 8) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 8) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 8)" * (cast_expression "(undefined8 *)(puVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar10)(iVar7 + 0x18,4);" (call_expression "(*pcVar10)(iVar7 + 0x18,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x18,4)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) , number_literal ))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar3[10] = extraout_v1_01;" (assignment_expression "puVar3[10] = extraout_v1_01" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar10)(iVar7 + 0x1c,4);" (call_expression "(*pcVar10)(iVar7 + 0x1c,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x1c,4)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) , number_literal ))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar3[0xb] = extraout_v1_02;" (assignment_expression "puVar3[0xb] = extraout_v1_02" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x20,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x20,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0x20,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x20,4)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 0xc) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 0xc) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 0xc)" * (cast_expression "(undefined8 *)(puVar3 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xc)" ( (binary_expression "puVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x24,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x24,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0x24,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x24,4)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 0xe) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 0xe) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 0xe)" * (cast_expression "(undefined8 *)(puVar3 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xe)" ( (binary_expression "puVar3 + 0xe" identifier + number_literal) )))) = identifier) ;) (if_statement "if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }" { (if_statement "if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }" if (parenthesized_expression "(uVar8 < (uint)puVar3[10])" ( (binary_expression "uVar8 < (uint)puVar3[10]" identifier < (cast_expression "(uint)puVar3[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar3[10]" identifier [ number_literal ]))) )) (compound_statement "{\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar9,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,puVar9,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10])" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" ( (pointer_expression "*(code *)PTR_warn_000c33a4" * (cast_expression "(code *)PTR_warn_000c33a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar6,puVar3[10])" ( identifier , identifier , (subscript_expression "puVar3[10]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }" if (parenthesized_expression "(((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb]))" ( (binary_expression "((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])" (parenthesized_expression "((puVar3[3] & 0x40) != 0)" ( (binary_expression "(puVar3[3] & 0x40) != 0" (parenthesized_expression "(puVar3[3] & 0x40)" ( (binary_expression "puVar3[3] & 0x40" (subscript_expression "puVar3[3]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar8 < (uint)puVar3[0xb])" ( (binary_expression "uVar8 < (uint)puVar3[0xb]" identifier < (cast_expression "(uint)puVar3[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar3[0xb]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar11,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,puVar11,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb])" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" ( (pointer_expression "*(code *)PTR_warn_000c33a4" * (cast_expression "(code *)PTR_warn_000c33a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar6,puVar3[0xb])" ( identifier , identifier , (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar3 + 0x12;" (assignment_expression "puVar3 = puVar3 + 0x12" identifier = (binary_expression "puVar3 + 0x12" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar7 + 0x28;" (assignment_expression "iVar7 = iVar7 + 0x28" identifier = (binary_expression "iVar7 + 0x28" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 != uVar8)" ( (binary_expression "uVar6 != uVar8" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_free_000c3620)(iVar2);" (call_expression "(*(code *)PTR_free_000c3620)(iVar2)" (parenthesized_expression "(*(code *)PTR_free_000c3620)" ( (pointer_expression "*(code *)PTR_free_000c3620" * (cast_expression "(code *)PTR_free_000c3620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0xf8c" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_000c3398)(uVar4,uVar8);" (call_expression "(*(code *)PTR_error_000c3398)(uVar4,uVar8)" (parenthesized_expression "(*(code *)PTR_error_000c3398)" ( (pointer_expression "*(code *)PTR_error_000c3398" * (cast_expression "(code *)PTR_error_000c3398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar8)" ( identifier , identifier ))) ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "bfd_boolean get_32bit_section_headers(Filedata *filedata,bfd_boolean probe)\n\n{\n  undefined *puVar1;\n  void *pvVar2;\n  Elf_Internal_Shdr *pEVar3;\n  undefined4 uVar4;\n  Filedata *filedata_1;\n  uint extraout_v1;\n  uint extraout_v1_00;\n  uint extraout_v1_01;\n  uint extraout_v1_02;\n  char *reason;\n  uint uVar5;\n  void *pvVar6;\n  uint uVar7;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined *puVar10;\n  bfd_vma bVar11;\n  file_ptr fVar12;\n  bfd_size_type bVar13;\n  \n  uVar5 = (filedata->file_header).e_shentsize;\n  if (probe == 0) {\n    if (uVar5 == 0) {\n      return 0;\n    }\n    uVar7 = (filedata->file_header).e_shnum;\n    if (uVar7 == 0) {\n      return 0;\n    }\n    if (uVar5 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar5 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    filedata_1 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    filedata_1 = (Filedata *)0x0;\n    if (uVar5 < 0x28) {\n      return 0;\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    uVar7 = 1;\n  }\n  pvVar2 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                    (ulonglong)uVar5,(ulonglong)uVar7,reason,filedata_1);\n  if (pvVar2 != (void *)0x0) {\n    (*(code *)PTR_free_000c3620)(filedata->section_headers);\n    pEVar3 = (Elf_Internal_Shdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48);\n    filedata->section_headers = pEVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (pEVar3 != (Elf_Internal_Shdr *)0x0) {\n      uVar5 = 0;\n      puVar10 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar8 = PTR_s_TADECL_000c3390 + -0xf60;\n      pvVar6 = pvVar2;\n      do {\n        (**(code **)puVar1)(pvVar6,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_name = extraout_v1;\n        (*pcVar9)((int)pvVar6 + 4,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_type = extraout_v1_00;\n        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_flags = bVar11;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addr = bVar11;\n        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_offset = fVar12;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_size = bVar13;\n        (*pcVar9)((int)pvVar6 + 0x18,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_link = extraout_v1_01;\n        (*pcVar9)((int)pvVar6 + 0x1c,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_info = extraout_v1_02;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addralign = bVar11;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);\n        pEVar3->sh_entsize = bVar13;\n        if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }\n        uVar5 = uVar5 + 1;\n        pEVar3 = pEVar3 + 1;\n        pvVar6 = (void *)((int)pvVar6 + 0x28);\n      } while (uVar5 != uVar7);\n      (*(code *)PTR_free_000c3620)(pvVar2);\n      return 1;\n    }\n    if (probe == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar7);\n    }\n  }\n  return 0;\n}\n\n" (function_definition "bfd_boolean get_32bit_section_headers(Filedata *filedata,bfd_boolean probe)\n\n{\n  undefined *puVar1;\n  void *pvVar2;\n  Elf_Internal_Shdr *pEVar3;\n  undefined4 uVar4;\n  Filedata *filedata_1;\n  uint extraout_v1;\n  uint extraout_v1_00;\n  uint extraout_v1_01;\n  uint extraout_v1_02;\n  char *reason;\n  uint uVar5;\n  void *pvVar6;\n  uint uVar7;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined *puVar10;\n  bfd_vma bVar11;\n  file_ptr fVar12;\n  bfd_size_type bVar13;\n  \n  uVar5 = (filedata->file_header).e_shentsize;\n  if (probe == 0) {\n    if (uVar5 == 0) {\n      return 0;\n    }\n    uVar7 = (filedata->file_header).e_shnum;\n    if (uVar7 == 0) {\n      return 0;\n    }\n    if (uVar5 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar5 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    filedata_1 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    filedata_1 = (Filedata *)0x0;\n    if (uVar5 < 0x28) {\n      return 0;\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    uVar7 = 1;\n  }\n  pvVar2 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                    (ulonglong)uVar5,(ulonglong)uVar7,reason,filedata_1);\n  if (pvVar2 != (void *)0x0) {\n    (*(code *)PTR_free_000c3620)(filedata->section_headers);\n    pEVar3 = (Elf_Internal_Shdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48);\n    filedata->section_headers = pEVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (pEVar3 != (Elf_Internal_Shdr *)0x0) {\n      uVar5 = 0;\n      puVar10 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar8 = PTR_s_TADECL_000c3390 + -0xf60;\n      pvVar6 = pvVar2;\n      do {\n        (**(code **)puVar1)(pvVar6,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_name = extraout_v1;\n        (*pcVar9)((int)pvVar6 + 4,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_type = extraout_v1_00;\n        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_flags = bVar11;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addr = bVar11;\n        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_offset = fVar12;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_size = bVar13;\n        (*pcVar9)((int)pvVar6 + 0x18,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_link = extraout_v1_01;\n        (*pcVar9)((int)pvVar6 + 0x1c,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_info = extraout_v1_02;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addralign = bVar11;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);\n        pEVar3->sh_entsize = bVar13;\n        if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }\n        uVar5 = uVar5 + 1;\n        pEVar3 = pEVar3 + 1;\n        pvVar6 = (void *)((int)pvVar6 + 0x28);\n      } while (uVar5 != uVar7);\n      (*(code *)PTR_free_000c3620)(pvVar2);\n      return 1;\n    }\n    if (probe == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar7);\n    }\n  }\n  return 0;\n}" type_identifier (function_declarator "get_32bit_section_headers(Filedata *filedata,bfd_boolean probe)" identifier (parameter_list "(Filedata *filedata,bfd_boolean probe)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) , (parameter_declaration "bfd_boolean probe" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  void *pvVar2;\n  Elf_Internal_Shdr *pEVar3;\n  undefined4 uVar4;\n  Filedata *filedata_1;\n  uint extraout_v1;\n  uint extraout_v1_00;\n  uint extraout_v1_01;\n  uint extraout_v1_02;\n  char *reason;\n  uint uVar5;\n  void *pvVar6;\n  uint uVar7;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined *puVar10;\n  bfd_vma bVar11;\n  file_ptr fVar12;\n  bfd_size_type bVar13;\n  \n  uVar5 = (filedata->file_header).e_shentsize;\n  if (probe == 0) {\n    if (uVar5 == 0) {\n      return 0;\n    }\n    uVar7 = (filedata->file_header).e_shnum;\n    if (uVar7 == 0) {\n      return 0;\n    }\n    if (uVar5 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar5 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    filedata_1 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    filedata_1 = (Filedata *)0x0;\n    if (uVar5 < 0x28) {\n      return 0;\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    uVar7 = 1;\n  }\n  pvVar2 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                    (ulonglong)uVar5,(ulonglong)uVar7,reason,filedata_1);\n  if (pvVar2 != (void *)0x0) {\n    (*(code *)PTR_free_000c3620)(filedata->section_headers);\n    pEVar3 = (Elf_Internal_Shdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48);\n    filedata->section_headers = pEVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (pEVar3 != (Elf_Internal_Shdr *)0x0) {\n      uVar5 = 0;\n      puVar10 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar8 = PTR_s_TADECL_000c3390 + -0xf60;\n      pvVar6 = pvVar2;\n      do {\n        (**(code **)puVar1)(pvVar6,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_name = extraout_v1;\n        (*pcVar9)((int)pvVar6 + 4,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_type = extraout_v1_00;\n        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_flags = bVar11;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addr = bVar11;\n        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_offset = fVar12;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_size = bVar13;\n        (*pcVar9)((int)pvVar6 + 0x18,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_link = extraout_v1_01;\n        (*pcVar9)((int)pvVar6 + 0x1c,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_info = extraout_v1_02;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addralign = bVar11;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);\n        pEVar3->sh_entsize = bVar13;\n        if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }\n        uVar5 = uVar5 + 1;\n        pEVar3 = pEVar3 + 1;\n        pvVar6 = (void *)((int)pvVar6 + 0x28);\n      } while (uVar5 != uVar7);\n      (*(code *)PTR_free_000c3620)(pvVar2);\n      return 1;\n    }\n    if (probe == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar7);\n    }\n  }\n  return 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "void *pvVar2;" primitive_type (pointer_declarator "*pvVar2" * identifier) ;) (declaration "Elf_Internal_Shdr *pEVar3;" type_identifier (pointer_declarator "*pEVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "Filedata *filedata_1;" type_identifier (pointer_declarator "*filedata_1" * identifier) ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "uint extraout_v1_00;" type_identifier identifier ;) (declaration "uint extraout_v1_01;" type_identifier identifier ;) (declaration "uint extraout_v1_02;" type_identifier identifier ;) (declaration "char *reason;" primitive_type (pointer_declarator "*reason" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "void *pvVar6;" primitive_type (pointer_declarator "*pvVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "bfd_vma bVar11;" type_identifier identifier ;) (declaration "file_ptr fVar12;" type_identifier identifier ;) (declaration "bfd_size_type bVar13;" type_identifier identifier ;) (expression_statement "uVar5 = (filedata->file_header).e_shentsize;" (assignment_expression "uVar5 = (filedata->file_header).e_shentsize" identifier = (field_expression "(filedata->file_header).e_shentsize" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (probe == 0) {\n    if (uVar5 == 0) {\n      return 0;\n    }\n    uVar7 = (filedata->file_header).e_shnum;\n    if (uVar7 == 0) {\n      return 0;\n    }\n    if (uVar5 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar5 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    filedata_1 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    filedata_1 = (Filedata *)0x0;\n    if (uVar5 < 0x28) {\n      return 0;\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    uVar7 = 1;\n  }" if (parenthesized_expression "(probe == 0)" ( (binary_expression "probe == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar5 == 0) {\n      return 0;\n    }\n    uVar7 = (filedata->file_header).e_shnum;\n    if (uVar7 == 0) {\n      return 0;\n    }\n    if (uVar5 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar5 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    filedata_1 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }" { (if_statement "if (uVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = (filedata->file_header).e_shnum;" (assignment_expression "uVar7 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar7 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar5 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }" if (parenthesized_expression "(uVar5 < 0x28)" ( (binary_expression "uVar5 < 0x28" identifier < number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0x1040,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0x1040" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_000c3398)(uVar4);" (call_expression "(*(code *)PTR_error_000c3398)(uVar4)" (parenthesized_expression "(*(code *)PTR_error_000c3398)" ( (pointer_expression "*(code *)PTR_error_000c3398" * (cast_expression "(code *)PTR_error_000c3398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar5 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }" if (parenthesized_expression "(uVar5 != 0x28)" ( (binary_expression "uVar5 != 0x28" identifier != number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0xfe8" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4)" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" ( (pointer_expression "*(code *)PTR_warn_000c33a4" * (cast_expression "(code *)PTR_warn_000c33a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);" (assignment_expression "reason = *(char **)((int)&(filedata->file_header).e_shoff + 4)" identifier = (pointer_expression "*(char **)((int)&(filedata->file_header).e_shoff + 4)" * (cast_expression "(char **)((int)&(filedata->file_header).e_shoff + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(filedata->file_header).e_shoff + 4)" ( (binary_expression "(int)&(filedata->file_header).e_shoff + 4" (cast_expression "(int)&(filedata->file_header).e_shoff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(filedata->file_header).e_shoff" & (field_expression "(filedata->file_header).e_shoff" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "filedata_1 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);" (assignment_expression "filedata_1 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5)" identifier = (cast_expression "(Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xef8,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0xef8" identifier + number_literal) , number_literal ))))) ;) }) (else_clause "else {\n    filedata_1 = (Filedata *)0x0;\n    if (uVar5 < 0x28) {\n      return 0;\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    uVar7 = 1;\n  }" else (compound_statement "{\n    filedata_1 = (Filedata *)0x0;\n    if (uVar5 < 0x28) {\n      return 0;\n    }\n    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);\n    uVar7 = 1;\n  }" { (expression_statement "filedata_1 = (Filedata *)0x0;" (assignment_expression "filedata_1 = (Filedata *)0x0" identifier = (cast_expression "(Filedata *)0x0" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar5 < 0x28) {\n      return 0;\n    }" if (parenthesized_expression "(uVar5 < 0x28)" ( (binary_expression "uVar5 < 0x28" identifier < number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);" (assignment_expression "reason = *(char **)((int)&(filedata->file_header).e_shoff + 4)" identifier = (pointer_expression "*(char **)((int)&(filedata->file_header).e_shoff + 4)" * (cast_expression "(char **)((int)&(filedata->file_header).e_shoff + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(filedata->file_header).e_shoff + 4)" ( (binary_expression "(int)&(filedata->file_header).e_shoff + 4" (cast_expression "(int)&(filedata->file_header).e_shoff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(filedata->file_header).e_shoff" & (field_expression "(filedata->file_header).e_shoff" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) (expression_statement "pvVar2 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                    (ulonglong)uVar5,(ulonglong)uVar7,reason,filedata_1);" (assignment_expression "pvVar2 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                    (ulonglong)uVar5,(ulonglong)uVar7,reason,filedata_1)" identifier = (call_expression "get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                    (ulonglong)uVar5,(ulonglong)uVar7,reason,filedata_1)" identifier (argument_list "((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                    (ulonglong)uVar5,(ulonglong)uVar7,reason,filedata_1)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Filedata *)&filedata->handle" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&filedata->handle" & (field_expression "filedata->handle" identifier -> field_identifier))) , (binary_expression "(ulong)&filedata->file_size" (parenthesized_expression "(ulong)" ( identifier )) & (field_expression "filedata->file_size" identifier -> field_identifier)) , (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , identifier , identifier )))) ;) (if_statement "if (pvVar2 != (void *)0x0) {\n    (*(code *)PTR_free_000c3620)(filedata->section_headers);\n    pEVar3 = (Elf_Internal_Shdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48);\n    filedata->section_headers = pEVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (pEVar3 != (Elf_Internal_Shdr *)0x0) {\n      uVar5 = 0;\n      puVar10 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar8 = PTR_s_TADECL_000c3390 + -0xf60;\n      pvVar6 = pvVar2;\n      do {\n        (**(code **)puVar1)(pvVar6,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_name = extraout_v1;\n        (*pcVar9)((int)pvVar6 + 4,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_type = extraout_v1_00;\n        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_flags = bVar11;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addr = bVar11;\n        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_offset = fVar12;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_size = bVar13;\n        (*pcVar9)((int)pvVar6 + 0x18,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_link = extraout_v1_01;\n        (*pcVar9)((int)pvVar6 + 0x1c,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_info = extraout_v1_02;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addralign = bVar11;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);\n        pEVar3->sh_entsize = bVar13;\n        if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }\n        uVar5 = uVar5 + 1;\n        pEVar3 = pEVar3 + 1;\n        pvVar6 = (void *)((int)pvVar6 + 0x28);\n      } while (uVar5 != uVar7);\n      (*(code *)PTR_free_000c3620)(pvVar2);\n      return 1;\n    }\n    if (probe == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar7);\n    }\n  }" if (parenthesized_expression "(pvVar2 != (void *)0x0)" ( (binary_expression "pvVar2 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_free_000c3620)(filedata->section_headers);\n    pEVar3 = (Elf_Internal_Shdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48);\n    filedata->section_headers = pEVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (pEVar3 != (Elf_Internal_Shdr *)0x0) {\n      uVar5 = 0;\n      puVar10 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar8 = PTR_s_TADECL_000c3390 + -0xf60;\n      pvVar6 = pvVar2;\n      do {\n        (**(code **)puVar1)(pvVar6,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_name = extraout_v1;\n        (*pcVar9)((int)pvVar6 + 4,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_type = extraout_v1_00;\n        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_flags = bVar11;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addr = bVar11;\n        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_offset = fVar12;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_size = bVar13;\n        (*pcVar9)((int)pvVar6 + 0x18,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_link = extraout_v1_01;\n        (*pcVar9)((int)pvVar6 + 0x1c,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_info = extraout_v1_02;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addralign = bVar11;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);\n        pEVar3->sh_entsize = bVar13;\n        if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }\n        uVar5 = uVar5 + 1;\n        pEVar3 = pEVar3 + 1;\n        pvVar6 = (void *)((int)pvVar6 + 0x28);\n      } while (uVar5 != uVar7);\n      (*(code *)PTR_free_000c3620)(pvVar2);\n      return 1;\n    }\n    if (probe == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar7);\n    }\n  }" { (expression_statement "(*(code *)PTR_free_000c3620)(filedata->section_headers);" (call_expression "(*(code *)PTR_free_000c3620)(filedata->section_headers)" (parenthesized_expression "(*(code *)PTR_free_000c3620)" ( (pointer_expression "*(code *)PTR_free_000c3620" * (cast_expression "(code *)PTR_free_000c3620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(filedata->section_headers)" ( (field_expression "filedata->section_headers" identifier -> field_identifier) ))) ;) (expression_statement "pEVar3 = (Elf_Internal_Shdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48);" (assignment_expression "pEVar3 = (Elf_Internal_Shdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48)" identifier = (cast_expression "(Elf_Internal_Shdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48)" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_cmalloc_000c33b8)(uVar7,0x48)" (parenthesized_expression "(*(code *)PTR_cmalloc_000c33b8)" ( (pointer_expression "*(code *)PTR_cmalloc_000c33b8" * (cast_expression "(code *)PTR_cmalloc_000c33b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,0x48)" ( identifier , number_literal ))))) ;) (expression_statement "filedata->section_headers = pEVar3;" (assignment_expression "filedata->section_headers = pEVar3" (field_expression "filedata->section_headers" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar1 = PTR_byte_get_000c3394;" (assignment_expression "puVar1 = PTR_byte_get_000c3394" identifier = identifier) ;) (if_statement "if (pEVar3 != (Elf_Internal_Shdr *)0x0) {\n      uVar5 = 0;\n      puVar10 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar8 = PTR_s_TADECL_000c3390 + -0xf60;\n      pvVar6 = pvVar2;\n      do {\n        (**(code **)puVar1)(pvVar6,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_name = extraout_v1;\n        (*pcVar9)((int)pvVar6 + 4,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_type = extraout_v1_00;\n        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_flags = bVar11;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addr = bVar11;\n        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_offset = fVar12;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_size = bVar13;\n        (*pcVar9)((int)pvVar6 + 0x18,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_link = extraout_v1_01;\n        (*pcVar9)((int)pvVar6 + 0x1c,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_info = extraout_v1_02;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addralign = bVar11;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);\n        pEVar3->sh_entsize = bVar13;\n        if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }\n        uVar5 = uVar5 + 1;\n        pEVar3 = pEVar3 + 1;\n        pvVar6 = (void *)((int)pvVar6 + 0x28);\n      } while (uVar5 != uVar7);\n      (*(code *)PTR_free_000c3620)(pvVar2);\n      return 1;\n    }" if (parenthesized_expression "(pEVar3 != (Elf_Internal_Shdr *)0x0)" ( (binary_expression "pEVar3 != (Elf_Internal_Shdr *)0x0" identifier != (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar5 = 0;\n      puVar10 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar8 = PTR_s_TADECL_000c3390 + -0xf60;\n      pvVar6 = pvVar2;\n      do {\n        (**(code **)puVar1)(pvVar6,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_name = extraout_v1;\n        (*pcVar9)((int)pvVar6 + 4,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_type = extraout_v1_00;\n        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_flags = bVar11;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addr = bVar11;\n        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_offset = fVar12;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_size = bVar13;\n        (*pcVar9)((int)pvVar6 + 0x18,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_link = extraout_v1_01;\n        (*pcVar9)((int)pvVar6 + 0x1c,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_info = extraout_v1_02;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addralign = bVar11;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);\n        pEVar3->sh_entsize = bVar13;\n        if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }\n        uVar5 = uVar5 + 1;\n        pEVar3 = pEVar3 + 1;\n        pvVar6 = (void *)((int)pvVar6 + 0x28);\n      } while (uVar5 != uVar7);\n      (*(code *)PTR_free_000c3620)(pvVar2);\n      return 1;\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = PTR_s_TADECL_000c3390 + -0xf2c;" (assignment_expression "puVar10 = PTR_s_TADECL_000c3390 + -0xf2c" identifier = (binary_expression "PTR_s_TADECL_000c3390 + -0xf2c" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_s_TADECL_000c3390 + -0xf60;" (assignment_expression "puVar8 = PTR_s_TADECL_000c3390 + -0xf60" identifier = (binary_expression "PTR_s_TADECL_000c3390 + -0xf60" identifier + number_literal)) ;) (expression_statement "pvVar6 = pvVar2;" (assignment_expression "pvVar6 = pvVar2" identifier = identifier) ;) (do_statement "do {\n        (**(code **)puVar1)(pvVar6,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_name = extraout_v1;\n        (*pcVar9)((int)pvVar6 + 4,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_type = extraout_v1_00;\n        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_flags = bVar11;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addr = bVar11;\n        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_offset = fVar12;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_size = bVar13;\n        (*pcVar9)((int)pvVar6 + 0x18,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_link = extraout_v1_01;\n        (*pcVar9)((int)pvVar6 + 0x1c,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_info = extraout_v1_02;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addralign = bVar11;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);\n        pEVar3->sh_entsize = bVar13;\n        if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }\n        uVar5 = uVar5 + 1;\n        pEVar3 = pEVar3 + 1;\n        pvVar6 = (void *)((int)pvVar6 + 0x28);\n      } while (uVar5 != uVar7);" do (compound_statement "{\n        (**(code **)puVar1)(pvVar6,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_name = extraout_v1;\n        (*pcVar9)((int)pvVar6 + 4,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_type = extraout_v1_00;\n        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_flags = bVar11;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addr = bVar11;\n        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_offset = fVar12;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_size = bVar13;\n        (*pcVar9)((int)pvVar6 + 0x18,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_link = extraout_v1_01;\n        (*pcVar9)((int)pvVar6 + 0x1c,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_info = extraout_v1_02;\n        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);\n        pcVar9 = *(code **)puVar1;\n        pEVar3->sh_addralign = bVar11;\n        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);\n        pEVar3->sh_entsize = bVar13;\n        if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }\n        uVar5 = uVar5 + 1;\n        pEVar3 = pEVar3 + 1;\n        pvVar6 = (void *)((int)pvVar6 + 0x28);\n      }" { (expression_statement "(**(code **)puVar1)(pvVar6,4);" (call_expression "(**(code **)puVar1)(pvVar6,4)" (parenthesized_expression "(**(code **)puVar1)" ( (pointer_expression "**(code **)puVar1" * (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pvVar6,4)" ( identifier , number_literal ))) ;) (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar3->sh_name = extraout_v1;" (assignment_expression "pEVar3->sh_name = extraout_v1" (field_expression "pEVar3->sh_name" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar9)((int)pvVar6 + 4,4);" (call_expression "(*pcVar9)((int)pvVar6 + 4,4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)pvVar6 + 4,4)" ( (binary_expression "(int)pvVar6 + 4" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal ))) ;) (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar3->sh_type = extraout_v1_00;" (assignment_expression "pEVar3->sh_type = extraout_v1_00" (field_expression "pEVar3->sh_type" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar11 = (*pcVar9)((int)pvVar6 + 8,4);" (assignment_expression "bVar11 = (*pcVar9)((int)pvVar6 + 8,4)" identifier = (call_expression "(*pcVar9)((int)pvVar6 + 8,4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)pvVar6 + 8,4)" ( (binary_expression "(int)pvVar6 + 8" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar3->sh_flags = bVar11;" (assignment_expression "pEVar3->sh_flags = bVar11" (field_expression "pEVar3->sh_flags" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);" (assignment_expression "bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4)" identifier = (call_expression "(*pcVar9)((int)pvVar6 + 0xc,4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)pvVar6 + 0xc,4)" ( (binary_expression "(int)pvVar6 + 0xc" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar3->sh_addr = bVar11;" (assignment_expression "pEVar3->sh_addr = bVar11" (field_expression "pEVar3->sh_addr" identifier -> field_identifier) = identifier) ;) (expression_statement "fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);" (assignment_expression "fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4)" identifier = (call_expression "(*pcVar9)((int)pvVar6 + 0x10,4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)pvVar6 + 0x10,4)" ( (binary_expression "(int)pvVar6 + 0x10" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar3->sh_offset = fVar12;" (assignment_expression "pEVar3->sh_offset = fVar12" (field_expression "pEVar3->sh_offset" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);" (assignment_expression "bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4)" identifier = (call_expression "(*pcVar9)((int)pvVar6 + 0x14,4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)pvVar6 + 0x14,4)" ( (binary_expression "(int)pvVar6 + 0x14" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar3->sh_size = bVar13;" (assignment_expression "pEVar3->sh_size = bVar13" (field_expression "pEVar3->sh_size" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar9)((int)pvVar6 + 0x18,4);" (call_expression "(*pcVar9)((int)pvVar6 + 0x18,4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)pvVar6 + 0x18,4)" ( (binary_expression "(int)pvVar6 + 0x18" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal ))) ;) (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar3->sh_link = extraout_v1_01;" (assignment_expression "pEVar3->sh_link = extraout_v1_01" (field_expression "pEVar3->sh_link" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar9)((int)pvVar6 + 0x1c,4);" (call_expression "(*pcVar9)((int)pvVar6 + 0x1c,4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)pvVar6 + 0x1c,4)" ( (binary_expression "(int)pvVar6 + 0x1c" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal ))) ;) (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar3->sh_info = extraout_v1_02;" (assignment_expression "pEVar3->sh_info = extraout_v1_02" (field_expression "pEVar3->sh_info" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);" (assignment_expression "bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4)" identifier = (call_expression "(*pcVar9)((int)pvVar6 + 0x20,4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)pvVar6 + 0x20,4)" ( (binary_expression "(int)pvVar6 + 0x20" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar3->sh_addralign = bVar11;" (assignment_expression "pEVar3->sh_addralign = bVar11" (field_expression "pEVar3->sh_addralign" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);" (assignment_expression "bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4)" identifier = (call_expression "(*pcVar9)((int)pvVar6 + 0x24,4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((int)pvVar6 + 0x24,4)" ( (binary_expression "(int)pvVar6 + 0x24" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pEVar3->sh_entsize = bVar13;" (assignment_expression "pEVar3->sh_entsize = bVar13" (field_expression "pEVar3->sh_entsize" identifier -> field_identifier) = identifier) ;) (if_statement "if (probe == 0) {\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }" if (parenthesized_expression "(probe == 0)" ( (binary_expression "probe == 0" identifier == number_literal) )) (compound_statement "{\n          if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }\n          if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }\n        }" { (if_statement "if (uVar7 < pEVar3->sh_link) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }" if (parenthesized_expression "(uVar7 < pEVar3->sh_link)" ( (binary_expression "uVar7 < pEVar3->sh_link" identifier < (field_expression "pEVar3->sh_link" identifier -> field_identifier)) )) (compound_statement "{\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);\n          }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,puVar8,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_link)" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" ( (pointer_expression "*(code *)PTR_warn_000c33a4" * (cast_expression "(code *)PTR_warn_000c33a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar5,pEVar3->sh_link)" ( identifier , identifier , (field_expression "pEVar3->sh_link" identifier -> field_identifier) ))) ;) })) (if_statement "if (((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }" if (parenthesized_expression "(((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info))" ( (binary_expression "((pEVar3->sh_flags & 0x40) != 0) && (uVar7 < pEVar3->sh_info)" (parenthesized_expression "((pEVar3->sh_flags & 0x40) != 0)" ( (binary_expression "(pEVar3->sh_flags & 0x40) != 0" (parenthesized_expression "(pEVar3->sh_flags & 0x40)" ( (binary_expression "pEVar3->sh_flags & 0x40" (field_expression "pEVar3->sh_flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar7 < pEVar3->sh_info)" ( (binary_expression "uVar7 < pEVar3->sh_info" identifier < (field_expression "pEVar3->sh_info" identifier -> field_identifier)) ))) )) (compound_statement "{\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);\n          }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar10,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar10,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,puVar10,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4,uVar5,pEVar3->sh_info)" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" ( (pointer_expression "*(code *)PTR_warn_000c33a4" * (cast_expression "(code *)PTR_warn_000c33a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar5,pEVar3->sh_info)" ( identifier , identifier , (field_expression "pEVar3->sh_info" identifier -> field_identifier) ))) ;) })) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "pEVar3 = pEVar3 + 1;" (assignment_expression "pEVar3 = pEVar3 + 1" identifier = (binary_expression "pEVar3 + 1" identifier + number_literal)) ;) (expression_statement "pvVar6 = (void *)((int)pvVar6 + 0x28);" (assignment_expression "pvVar6 = (void *)((int)pvVar6 + 0x28)" identifier = (cast_expression "(void *)((int)pvVar6 + 0x28)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar6 + 0x28)" ( (binary_expression "(int)pvVar6 + 0x28" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(uVar5 != uVar7)" ( (binary_expression "uVar5 != uVar7" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_free_000c3620)(pvVar2);" (call_expression "(*(code *)PTR_free_000c3620)(pvVar2)" (parenthesized_expression "(*(code *)PTR_free_000c3620)" ( (pointer_expression "*(code *)PTR_free_000c3620" * (cast_expression "(code *)PTR_free_000c3620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pvVar2)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (probe == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar7);\n    }" if (parenthesized_expression "(probe == 0)" ( (binary_expression "probe == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar7);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0xf8c" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_000c3398)(uVar4,uVar7);" (call_expression "(*(code *)PTR_error_000c3398)(uVar4,uVar7)" (parenthesized_expression "(*(code *)PTR_error_000c3398)" ( (pointer_expression "*(code *)PTR_error_000c3398" * (cast_expression "(code *)PTR_error_000c3398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar7)" ( identifier , identifier ))) ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4 FUN_00023dac(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  undefined8 uVar12;\n  \n  uVar6 = *(uint *)(param_1 + 0x50);\n  if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }\n  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);\n  if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_00023dac(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  undefined8 uVar12;\n  \n  uVar6 = *(uint *)(param_1 + 0x50);\n  if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }\n  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);\n  if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00023dac(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 identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  undefined8 uVar12;\n  \n  uVar6 = *(uint *)(param_1 + 0x50);\n  if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }\n  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);\n  if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }\n  return 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "undefined4 extraout_v1_00;" type_identifier identifier ;) (declaration "undefined4 extraout_v1_01;" type_identifier identifier ;) (declaration "undefined4 extraout_v1_02;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (expression_statement "uVar6 = *(uint *)(param_1 + 0x50);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0x50)" identifier = (pointer_expression "*(uint *)(param_1 + 0x50)" * (cast_expression "(uint *)(param_1 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }" { (if_statement "if (uVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar8 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar8 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }" if (parenthesized_expression "(uVar6 < 0x28)" ( (binary_expression "uVar6 < 0x28" identifier < number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0x1040,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0x1040" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_000c3398)(uVar4);" (call_expression "(*(code *)PTR_error_000c3398)(uVar4)" (parenthesized_expression "(*(code *)PTR_error_000c3398)" ( (pointer_expression "*(code *)PTR_error_000c3398" * (cast_expression "(code *)PTR_error_000c3398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }" if (parenthesized_expression "(uVar6 != 0x28)" ( (binary_expression "uVar6 != 0x28" identifier != number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0xfe8" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4)" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" ( (pointer_expression "*(code *)PTR_warn_000c33a4" * (cast_expression "(code *)PTR_warn_000c33a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xef8,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0xef8" identifier + number_literal) , number_literal )))) ;) }) (else_clause "else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }" else (compound_statement "{\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (uVar6 < 0x28) {\n      return 0;\n    }" if (parenthesized_expression "(uVar6 < 0x28)" ( (binary_expression "uVar6 < 0x28" identifier < number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);" (assignment_expression "iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4)" identifier = (call_expression "FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4)" identifier (argument_list "(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4)" ( number_literal , (binary_expression "param_1 + 4" identifier + number_literal) , (binary_expression "param_1 + 8" identifier + number_literal) , identifier , number_literal , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }" { (expression_statement "(*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));" (call_expression "(*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60))" (parenthesized_expression "(*(code *)PTR_free_000c3620)" ( (pointer_expression "*(code *)PTR_free_000c3620" * (cast_expression "(code *)PTR_free_000c3620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x60))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) ))) ;) (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48)" (parenthesized_expression "(*(code *)PTR_cmalloc_000c33b8)" ( (pointer_expression "*(code *)PTR_cmalloc_000c33b8" * (cast_expression "(code *)PTR_cmalloc_000c33b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,0x48)" ( identifier , number_literal ))))) ;) (expression_statement "*(undefined4 **)(param_1 + 0x60) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 0x60) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 0x60)" * (cast_expression "(undefined4 **)(param_1 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = PTR_byte_get_000c3394;" (assignment_expression "puVar1 = PTR_byte_get_000c3394" identifier = identifier) ;) (if_statement "if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }" if (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" ( (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;" (assignment_expression "puVar11 = PTR_s_TADECL_000c3390 + -0xf2c" identifier = (binary_expression "PTR_s_TADECL_000c3390 + -0xf2c" identifier + number_literal)) ;) (expression_statement "puVar9 = PTR_s_TADECL_000c3390 + -0xf60;" (assignment_expression "puVar9 = PTR_s_TADECL_000c3390 + -0xf60" identifier = (binary_expression "PTR_s_TADECL_000c3390 + -0xf60" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar2;" (assignment_expression "iVar7 = iVar2" identifier = identifier) ;) (do_statement "do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);" do (compound_statement "{\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      }" { (expression_statement "(**(code **)puVar1)(iVar7,4);" (call_expression "(**(code **)puVar1)(iVar7,4)" (parenthesized_expression "(**(code **)puVar1)" ( (pointer_expression "**(code **)puVar1" * (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(iVar7,4)" ( identifier , number_literal ))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*puVar3 = extraout_v1;" (assignment_expression "*puVar3 = extraout_v1" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "(*pcVar10)(iVar7 + 4,4);" (call_expression "(*pcVar10)(iVar7 + 4,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 4,4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) , number_literal ))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar3[1] = extraout_v1_00;" (assignment_expression "puVar3[1] = extraout_v1_00" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 8,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 8,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 8,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 8,4)" ( (binary_expression "iVar7 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 2) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 2) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 2)" * (cast_expression "(undefined8 *)(puVar3 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0xc,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0xc,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0xc,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0xc,4)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 4) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 4) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 4)" * (cast_expression "(undefined8 *)(puVar3 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x10,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x10,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0x10,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x10,4)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 6) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 6) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 6)" * (cast_expression "(undefined8 *)(puVar3 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 6)" ( (binary_expression "puVar3 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x14,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x14,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0x14,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x14,4)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 8) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 8) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 8)" * (cast_expression "(undefined8 *)(puVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar10)(iVar7 + 0x18,4);" (call_expression "(*pcVar10)(iVar7 + 0x18,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x18,4)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) , number_literal ))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar3[10] = extraout_v1_01;" (assignment_expression "puVar3[10] = extraout_v1_01" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar10)(iVar7 + 0x1c,4);" (call_expression "(*pcVar10)(iVar7 + 0x1c,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x1c,4)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) , number_literal ))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar3[0xb] = extraout_v1_02;" (assignment_expression "puVar3[0xb] = extraout_v1_02" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x20,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x20,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0x20,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x20,4)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar3 + 0xc) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 0xc) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 0xc)" * (cast_expression "(undefined8 *)(puVar3 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xc)" ( (binary_expression "puVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x24,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x24,4)" identifier = (call_expression "(*pcVar10)(iVar7 + 0x24,4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7 + 0x24,4)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 0xe) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 0xe) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 0xe)" * (cast_expression "(undefined8 *)(puVar3 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xe)" ( (binary_expression "puVar3 + 0xe" identifier + number_literal) )))) = identifier) ;) (if_statement "if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }" { (if_statement "if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }" if (parenthesized_expression "(uVar8 < (uint)puVar3[10])" ( (binary_expression "uVar8 < (uint)puVar3[10]" identifier < (cast_expression "(uint)puVar3[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar3[10]" identifier [ number_literal ]))) )) (compound_statement "{\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar9,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,puVar9,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10])" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" ( (pointer_expression "*(code *)PTR_warn_000c33a4" * (cast_expression "(code *)PTR_warn_000c33a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar6,puVar3[10])" ( identifier , identifier , (subscript_expression "puVar3[10]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }" if (parenthesized_expression "(((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb]))" ( (binary_expression "((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])" (parenthesized_expression "((puVar3[3] & 0x40) != 0)" ( (binary_expression "(puVar3[3] & 0x40) != 0" (parenthesized_expression "(puVar3[3] & 0x40)" ( (binary_expression "puVar3[3] & 0x40" (subscript_expression "puVar3[3]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar8 < (uint)puVar3[0xb])" ( (binary_expression "uVar8 < (uint)puVar3[0xb]" identifier < (cast_expression "(uint)puVar3[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar3[0xb]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar11,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,puVar11,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb])" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" ( (pointer_expression "*(code *)PTR_warn_000c33a4" * (cast_expression "(code *)PTR_warn_000c33a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar6,puVar3[0xb])" ( identifier , identifier , (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar3 + 0x12;" (assignment_expression "puVar3 = puVar3 + 0x12" identifier = (binary_expression "puVar3 + 0x12" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar7 + 0x28;" (assignment_expression "iVar7 = iVar7 + 0x28" identifier = (binary_expression "iVar7 + 0x28" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 != uVar8)" ( (binary_expression "uVar6 != uVar8" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_free_000c3620)(iVar2);" (call_expression "(*(code *)PTR_free_000c3620)(iVar2)" (parenthesized_expression "(*(code *)PTR_free_000c3620)" ( (pointer_expression "*(code *)PTR_free_000c3620" * (cast_expression "(code *)PTR_free_000c3620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" ( (pointer_expression "*(code *)PTR_dcgettext_000c360c" * (cast_expression "(code *)PTR_dcgettext_000c360c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + -0xf8c" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_000c3398)(uVar4,uVar8);" (call_expression "(*(code *)PTR_error_000c3398)(uVar4,uVar8)" (parenthesized_expression "(*(code *)PTR_error_000c3398)" ( (pointer_expression "*(code *)PTR_error_000c3398" * (cast_expression "(code *)PTR_error_000c3398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,uVar8)" ( identifier , identifier ))) ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , LIT , IDENT , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 = 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) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (subscript_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 = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) })) })) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00023dac(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  undefined8 uVar12;\n  \n  uVar6 = *(uint *)(param_1 + 0x50);\n  if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }\n  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);\n  if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_00023dac(int param_1,int param_2)" (identifier "FUN_00023dac") (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") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  undefined8 uVar12;\n  \n  uVar6 = *(uint *)(param_1 + 0x50);\n  if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }\n  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);\n  if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }\n  return 0;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 extraout_v1;" (type_identifier "undefined4") (identifier "extraout_v1") (; ";")) (declaration "undefined4 extraout_v1_00;" (type_identifier "undefined4") (identifier "extraout_v1_00") (; ";")) (declaration "undefined4 extraout_v1_01;" (type_identifier "undefined4") (identifier "extraout_v1_01") (; ";")) (declaration "undefined4 extraout_v1_02;" (type_identifier "undefined4") (identifier "extraout_v1_02") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (expression_statement "uVar6 = *(uint *)(param_1 + 0x50);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0x50)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 0x50)" (* "*") (cast_expression "(uint *)(param_1 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (if_statement "if (param_2 == 0) {\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }\n  else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (uVar6 == 0) {\n      return 0;\n    }\n    uVar8 = *(uint *)(param_1 + 0x54);\n    if (uVar8 == 0) {\n      return 0;\n    }\n    if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }\n    if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);\n  }" ({ "{") (if_statement "if (uVar6 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar8 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar8 = *(uint *)(param_1 + 0x54)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if (uVar8 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (uVar6 < 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar6 < 0x28)" (( "(") (binary_expression "uVar6 < 0x28" (identifier "uVar6") (< "<") (number_literal "0x28")) () ")")) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);\n      (*(code *)PTR_error_000c3398)(uVar4);\n      return 0;\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000c360c" (* "*") (cast_expression "(code *)PTR_dcgettext_000c360c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000c360c"))) () ")")) (argument_list "(0,PTR_s_TADECL_000c3390 + -0x1040,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_TADECL_000c3390 + -0x1040" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "-0x1040")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_error_000c3398)(uVar4);" (call_expression "(*(code *)PTR_error_000c3398)(uVar4)" (parenthesized_expression "(*(code *)PTR_error_000c3398)" (( "(") (pointer_expression "*(code *)PTR_error_000c3398" (* "*") (cast_expression "(code *)PTR_error_000c3398" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_error_000c3398"))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (uVar6 != 0x28) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }" (if "if") (parenthesized_expression "(uVar6 != 0x28)" (( "(") (binary_expression "uVar6 != 0x28" (identifier "uVar6") (!= "!=") (number_literal "0x28")) () ")")) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);\n      (*(code *)PTR_warn_000c33a4)(uVar4);\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000c360c" (* "*") (cast_expression "(code *)PTR_dcgettext_000c360c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000c360c"))) () ")")) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xfe8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_TADECL_000c3390 + -0xfe8" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "-0xfe8")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4)" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" (( "(") (pointer_expression "*(code *)PTR_warn_000c33a4" (* "*") (cast_expression "(code *)PTR_warn_000c33a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_warn_000c33a4"))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0x34)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000c360c" (* "*") (cast_expression "(code *)PTR_dcgettext_000c360c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000c360c"))) () ")")) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xef8,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_TADECL_000c3390 + -0xef8" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "-0xef8")) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }" (else "else") (compound_statement "{\n    uVar4 = 0;\n    if (uVar6 < 0x28) {\n      return 0;\n    }\n    uVar5 = *(undefined4 *)(param_1 + 0x34);\n    uVar8 = 1;\n  }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar6 < 0x28) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar6 < 0x28)" (( "(") (binary_expression "uVar6 < 0x28" (identifier "uVar6") (< "<") (number_literal "0x28")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0x34)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);" (assignment_expression "iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4)" (identifier "iVar2") (= "=") (call_expression "FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4)" (identifier "FUN_0002253c") (argument_list "(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4)" (( "(") (number_literal "0") (, ",") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) (, ",") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) (, ",") (identifier "uVar5") (, ",") (number_literal "0") (, ",") (identifier "uVar6") (, ",") (number_literal "0") (, ",") (identifier "uVar8") (, ",") (identifier "uVar4") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));\n    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);\n    *(undefined4 **)(param_1 + 0x60) = puVar3;\n    puVar1 = PTR_byte_get_000c3394;\n    if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }\n    if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }\n  }" ({ "{") (expression_statement "(*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));" (call_expression "(*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60))" (parenthesized_expression "(*(code *)PTR_free_000c3620)" (( "(") (pointer_expression "*(code *)PTR_free_000c3620" (* "*") (cast_expression "(code *)PTR_free_000c3620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000c3620"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x60))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48)" (parenthesized_expression "(*(code *)PTR_cmalloc_000c33b8)" (( "(") (pointer_expression "*(code *)PTR_cmalloc_000c33b8" (* "*") (cast_expression "(code *)PTR_cmalloc_000c33b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_cmalloc_000c33b8"))) () ")")) (argument_list "(uVar8,0x48)" (( "(") (identifier "uVar8") (, ",") (number_literal "0x48") () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x60) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 0x60) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 0x60)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar1 = PTR_byte_get_000c3394;" (assignment_expression "puVar1 = PTR_byte_get_000c3394" (identifier "puVar1") (= "=") (identifier "PTR_byte_get_000c3394")) (; ";")) (if_statement "if (puVar3 != (undefined4 *)0x0) {\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }" (if "if") (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar3 != (undefined4 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar6 = 0;\n      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;\n      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;\n      iVar7 = iVar2;\n      do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);\n      (*(code *)PTR_free_000c3620)(iVar2);\n      return 1;\n    }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;" (assignment_expression "puVar11 = PTR_s_TADECL_000c3390 + -0xf2c" (identifier "puVar11") (= "=") (binary_expression "PTR_s_TADECL_000c3390 + -0xf2c" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "-0xf2c"))) (; ";")) (expression_statement "puVar9 = PTR_s_TADECL_000c3390 + -0xf60;" (assignment_expression "puVar9 = PTR_s_TADECL_000c3390 + -0xf60" (identifier "puVar9") (= "=") (binary_expression "PTR_s_TADECL_000c3390 + -0xf60" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "-0xf60"))) (; ";")) (expression_statement "iVar7 = iVar2;" (assignment_expression "iVar7 = iVar2" (identifier "iVar7") (= "=") (identifier "iVar2")) (; ";")) (do_statement "do {\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      } while (uVar6 != uVar8);" (do "do") (compound_statement "{\n        (**(code **)puVar1)(iVar7,4);\n        pcVar10 = *(code **)puVar1;\n        *puVar3 = extraout_v1;\n        (*pcVar10)(iVar7 + 4,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[1] = extraout_v1_00;\n        uVar12 = (*pcVar10)(iVar7 + 8,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 2) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0xc,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 4) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x10,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 6) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x14,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 8) = uVar12;\n        (*pcVar10)(iVar7 + 0x18,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[10] = extraout_v1_01;\n        (*pcVar10)(iVar7 + 0x1c,4);\n        pcVar10 = *(code **)puVar1;\n        puVar3[0xb] = extraout_v1_02;\n        uVar12 = (*pcVar10)(iVar7 + 0x20,4);\n        pcVar10 = *(code **)puVar1;\n        *(undefined8 *)(puVar3 + 0xc) = uVar12;\n        uVar12 = (*pcVar10)(iVar7 + 0x24,4);\n        *(undefined8 *)(puVar3 + 0xe) = uVar12;\n        if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }\n        uVar6 = uVar6 + 1;\n        puVar3 = puVar3 + 0x12;\n        iVar7 = iVar7 + 0x28;\n      }" ({ "{") (expression_statement "(**(code **)puVar1)(iVar7,4);" (call_expression "(**(code **)puVar1)(iVar7,4)" (parenthesized_expression "(**(code **)puVar1)" (( "(") (pointer_expression "**(code **)puVar1" (* "*") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) () ")")) (argument_list "(iVar7,4)" (( "(") (identifier "iVar7") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "*puVar3 = extraout_v1;" (assignment_expression "*puVar3 = extraout_v1" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "extraout_v1")) (; ";")) (expression_statement "(*pcVar10)(iVar7 + 4,4);" (call_expression "(*pcVar10)(iVar7 + 4,4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7 + 4,4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "puVar3[1] = extraout_v1_00;" (assignment_expression "puVar3[1] = extraout_v1_00" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "extraout_v1_00")) (; ";")) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 8,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 8,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar10)(iVar7 + 8,4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7 + 8,4)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 2) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 2) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 2)" (( "(") (binary_expression "puVar3 + 2" (identifier "puVar3") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0xc,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0xc,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar10)(iVar7 + 0xc,4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7 + 0xc,4)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 4) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 4) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 4)" (( "(") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x10,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x10,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar10)(iVar7 + 0x10,4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7 + 0x10,4)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 6) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 6) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 6)" (( "(") (binary_expression "puVar3 + 6" (identifier "puVar3") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x14,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x14,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar10)(iVar7 + 0x14,4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7 + 0x14,4)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 8) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 8) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 8)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 8)" (( "(") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "(*pcVar10)(iVar7 + 0x18,4);" (call_expression "(*pcVar10)(iVar7 + 0x18,4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7 + 0x18,4)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "puVar3[10] = extraout_v1_01;" (assignment_expression "puVar3[10] = extraout_v1_01" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "extraout_v1_01")) (; ";")) (expression_statement "(*pcVar10)(iVar7 + 0x1c,4);" (call_expression "(*pcVar10)(iVar7 + 0x1c,4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7 + 0x1c,4)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "puVar3[0xb] = extraout_v1_02;" (assignment_expression "puVar3[0xb] = extraout_v1_02" (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "extraout_v1_02")) (; ";")) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x20,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x20,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar10)(iVar7 + 0x20,4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7 + 0x20,4)" (( "(") (binary_expression "iVar7 + 0x20" (identifier "iVar7") (+ "+") (number_literal "0x20")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar10 = *(code **)puVar1;" (assignment_expression "pcVar10 = *(code **)puVar1" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 0xc) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 0xc) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 0xc)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xc)" (( "(") (binary_expression "puVar3 + 0xc" (identifier "puVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar10)(iVar7 + 0x24,4);" (assignment_expression "uVar12 = (*pcVar10)(iVar7 + 0x24,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar10)(iVar7 + 0x24,4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7 + 0x24,4)" (( "(") (binary_expression "iVar7 + 0x24" (identifier "iVar7") (+ "+") (number_literal "0x24")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 0xe) = uVar12;" (assignment_expression "*(undefined8 *)(puVar3 + 0xe) = uVar12" (pointer_expression "*(undefined8 *)(puVar3 + 0xe)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 0xe)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xe)" (( "(") (binary_expression "puVar3 + 0xe" (identifier "puVar3") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (param_2 == 0) {\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }\n          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }\n        }" ({ "{") (if_statement "if (uVar8 < (uint)puVar3[10]) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }" (if "if") (parenthesized_expression "(uVar8 < (uint)puVar3[10])" (( "(") (binary_expression "uVar8 < (uint)puVar3[10]" (identifier "uVar8") (< "<") (cast_expression "(uint)puVar3[10]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")))) () ")")) (compound_statement "{\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);\n          }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar9,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000c360c" (* "*") (cast_expression "(code *)PTR_dcgettext_000c360c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000c360c"))) () ")")) (argument_list "(0,puVar9,5)" (( "(") (number_literal "0") (, ",") (identifier "puVar9") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10])" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" (( "(") (pointer_expression "*(code *)PTR_warn_000c33a4" (* "*") (cast_expression "(code *)PTR_warn_000c33a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_warn_000c33a4"))) () ")")) (argument_list "(uVar4,uVar6,puVar3[10])" (( "(") (identifier "uVar4") (, ",") (identifier "uVar6") (, ",") (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }" (if "if") (parenthesized_expression "(((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb]))" (( "(") (binary_expression "((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])" (parenthesized_expression "((puVar3[3] & 0x40) != 0)" (( "(") (binary_expression "(puVar3[3] & 0x40) != 0" (parenthesized_expression "(puVar3[3] & 0x40)" (( "(") (binary_expression "puVar3[3] & 0x40" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar8 < (uint)puVar3[0xb])" (( "(") (binary_expression "uVar8 < (uint)puVar3[0xb]" (identifier "uVar8") (< "<") (cast_expression "(uint)puVar3[0xb]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")))) () ")"))) () ")")) (compound_statement "{\n            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);\n            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);\n          }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar11,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000c360c" (* "*") (cast_expression "(code *)PTR_dcgettext_000c360c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000c360c"))) () ")")) (argument_list "(0,puVar11,5)" (( "(") (number_literal "0") (, ",") (identifier "puVar11") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb])" (parenthesized_expression "(*(code *)PTR_warn_000c33a4)" (( "(") (pointer_expression "*(code *)PTR_warn_000c33a4" (* "*") (cast_expression "(code *)PTR_warn_000c33a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_warn_000c33a4"))) () ")")) (argument_list "(uVar4,uVar6,puVar3[0xb])" (( "(") (identifier "uVar4") (, ",") (identifier "uVar6") (, ",") (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar3 = puVar3 + 0x12;" (assignment_expression "puVar3 = puVar3 + 0x12" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 0x12" (identifier "puVar3") (+ "+") (number_literal "0x12"))) (; ";")) (expression_statement "iVar7 = iVar7 + 0x28;" (assignment_expression "iVar7 = iVar7 + 0x28" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 0x28" (identifier "iVar7") (+ "+") (number_literal "0x28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar6 != uVar8)" (( "(") (binary_expression "uVar6 != uVar8" (identifier "uVar6") (!= "!=") (identifier "uVar8")) () ")")) (; ";")) (expression_statement "(*(code *)PTR_free_000c3620)(iVar2);" (call_expression "(*(code *)PTR_free_000c3620)(iVar2)" (parenthesized_expression "(*(code *)PTR_free_000c3620)" (( "(") (pointer_expression "*(code *)PTR_free_000c3620" (* "*") (cast_expression "(code *)PTR_free_000c3620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000c3620"))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);\n      (*(code *)PTR_error_000c3398)(uVar4,uVar8);\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000c360c)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000c360c" (* "*") (cast_expression "(code *)PTR_dcgettext_000c360c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000c360c"))) () ")")) (argument_list "(0,PTR_s_TADECL_000c3390 + -0xf8c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_TADECL_000c3390 + -0xf8c" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "-0xf8c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_error_000c3398)(uVar4,uVar8);" (call_expression "(*(code *)PTR_error_000c3398)(uVar4,uVar8)" (parenthesized_expression "(*(code *)PTR_error_000c3398)" (( "(") (pointer_expression "*(code *)PTR_error_000c3398" (* "*") (cast_expression "(code *)PTR_error_000c3398" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_error_000c3398"))) () ")")) (argument_list "(uVar4,uVar8)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

type_1 function_1(type_2 *filedata,type_1 var_1)

{
  type_3 *puVar1;
  void *var_6;
  type_4 *var_7;
  type_5 uVar4;
  type_2 *filedata_1;
  type_6 extraout_v1;
  type_6 extraout_v1_00;
  type_6 extraout_v1_01;
  type_6 extraout_v1_02;
  char *reason;
  type_6 var_2;
  void *pvVar6;
  type_6 var_3;
  type_3 *puVar8;
  type_7 *pcVar9;
  type_3 *puVar10;
  type_8 bVar11;
  type_9 fVar12;
  type_10 bVar13;
  
  var_2 = (filedata->file_header).e_shentsize;
  if (var_1 == 0) {
    if (var_2 == 0) {
      return 0;
    }
    var_3 = (filedata->file_header).e_shnum;
    if (var_3 == 0) {
      return 0;
    }
    if (var_2 < 0x28) {
      uVar4 = (*(type_7 *)PTR_dcgettext_000c360c)(0,var_4 + -0x1040,5);
      (*(type_7 *)PTR_error_000c3398)(uVar4);
      return 0;
    }
    if (var_2 != 0x28) {
      uVar4 = (*(type_7 *)PTR_dcgettext_000c360c)(0,var_4 + -0xfe8,5);
      (*(type_7 *)PTR_warn_000c33a4)(uVar4);
    }
    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);
    filedata_1 = (type_2 *)(*(type_7 *)PTR_dcgettext_000c360c)(0,var_4 + -0xef8,5);
  }
  else {
    filedata_1 = (type_2 *)0x0;
    if (var_2 < 0x28) {
      return 0;
    }
    reason = *(char **)((int)&(filedata->file_header).e_shoff + 4);
    var_3 = 1;
  }
  var_6 = var_5((void *)0x0,(type_2 *)&filedata->handle,(ulong)&filedata->file_size,
                    (type_11)var_2,(type_11)var_3,reason,filedata_1);
  if (var_6 != (void *)0x0) {
    (*(type_7 *)PTR_free_000c3620)(filedata->section_headers);
    var_7 = (type_4 *)(*(type_7 *)PTR_cmalloc_000c33b8)(var_3,0x48);
    filedata->section_headers = var_7;
    puVar1 = PTR_byte_get_000c3394;
    if (var_7 != (type_4 *)0x0) {
      var_2 = 0;
      puVar10 = var_4 + -0xf2c;
      puVar8 = var_4 + -0xf60;
      pvVar6 = var_6;
      do {
        (**(type_7 **)puVar1)(pvVar6,4);
        pcVar9 = *(type_7 **)puVar1;
        var_7->sh_name = extraout_v1;
        (*pcVar9)((int)pvVar6 + 4,4);
        pcVar9 = *(type_7 **)puVar1;
        var_7->sh_type = extraout_v1_00;
        bVar11 = (*pcVar9)((int)pvVar6 + 8,4);
        pcVar9 = *(type_7 **)puVar1;
        var_7->sh_flags = bVar11;
        bVar11 = (*pcVar9)((int)pvVar6 + 0xc,4);
        pcVar9 = *(type_7 **)puVar1;
        var_7->sh_addr = bVar11;
        fVar12 = (*pcVar9)((int)pvVar6 + 0x10,4);
        pcVar9 = *(type_7 **)puVar1;
        var_7->sh_offset = fVar12;
        bVar13 = (*pcVar9)((int)pvVar6 + 0x14,4);
        pcVar9 = *(type_7 **)puVar1;
        var_7->sh_size = bVar13;
        (*pcVar9)((int)pvVar6 + 0x18,4);
        pcVar9 = *(type_7 **)puVar1;
        var_7->sh_link = extraout_v1_01;
        (*pcVar9)((int)pvVar6 + 0x1c,4);
        pcVar9 = *(type_7 **)puVar1;
        var_7->sh_info = extraout_v1_02;
        bVar11 = (*pcVar9)((int)pvVar6 + 0x20,4);
        pcVar9 = *(type_7 **)puVar1;
        var_7->sh_addralign = bVar11;
        bVar13 = (*pcVar9)((int)pvVar6 + 0x24,4);
        var_7->sh_entsize = bVar13;
        if (var_1 == 0) {
          if (var_3 < var_7->sh_link) {
            uVar4 = (*(type_7 *)PTR_dcgettext_000c360c)(0,puVar8,5);
            (*(type_7 *)PTR_warn_000c33a4)(uVar4,var_2,var_7->sh_link);
          }
          if (((var_7->sh_flags & 0x40) != 0) && (var_3 < var_7->sh_info)) {
            uVar4 = (*(type_7 *)PTR_dcgettext_000c360c)(0,puVar10,5);
            (*(type_7 *)PTR_warn_000c33a4)(uVar4,var_2,var_7->sh_info);
          }
        }
        var_2 = var_2 + 1;
        var_7 = var_7 + 1;
        pvVar6 = (void *)((int)pvVar6 + 0x28);
      } while (var_2 != var_3);
      (*(type_7 *)PTR_free_000c3620)(var_6);
      return 1;
    }
    if (var_1 == 0) {
      uVar4 = (*(type_7 *)PTR_dcgettext_000c360c)(0,var_4 + -0xf8c,5);
      (*(type_7 *)PTR_error_000c3398)(uVar4,var_3);
    }
  }
  return 0;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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 (number_literal) (binary_expression left: (identifier) right: (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)))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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 (number_literal) (binary_expression left: (identifier) right: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (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) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal) (identifier) (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 (pointer_expression argument: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (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))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_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: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_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: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_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: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_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: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_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: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_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: (number_literal))))) 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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (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 (number_literal) (identifier) (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) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (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 (number_literal) (identifier) (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) (identifier) (subscript_expression argument: (identifier) index: (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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)))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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 (number_literal) (binary_expression left: (identifier) right: (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) (identifier)))))))) (return_statement (number_literal)))))

undefined4 MASKED(int param_1,int param_2)

{
  undefined *puVar1;
  int iVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  undefined4 extraout_v1;
  undefined4 extraout_v1_00;
  undefined4 extraout_v1_01;
  undefined4 extraout_v1_02;
  undefined4 uVar5;
  uint uVar6;
  int iVar7;
  uint uVar8;
  undefined *puVar9;
  code *pcVar10;
  undefined *puVar11;
  undefined8 uVar12;
  
  uVar6 = *(uint *)(param_1 + 0x50);
  if (param_2 == 0) {
    if (uVar6 == 0) {
      return 0;
    }
    uVar8 = *(uint *)(param_1 + 0x54);
    if (uVar8 == 0) {
      return 0;
    }
    if (uVar6 < 0x28) {
      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0x1040,5);
      (*(code *)PTR_error_000c3398)(uVar4);
      return 0;
    }
    if (uVar6 != 0x28) {
      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xfe8,5);
      (*(code *)PTR_warn_000c33a4)(uVar4);
    }
    uVar5 = *(undefined4 *)(param_1 + 0x34);
    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xef8,5);
  }
  else {
    uVar4 = 0;
    if (uVar6 < 0x28) {
      return 0;
    }
    uVar5 = *(undefined4 *)(param_1 + 0x34);
    uVar8 = 1;
  }
  iVar2 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar5,0,uVar6,0,uVar8,uVar4);
  if (iVar2 != 0) {
    (*(code *)PTR_free_000c3620)(*(undefined4 *)(param_1 + 0x60));
    puVar3 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(uVar8,0x48);
    *(undefined4 **)(param_1 + 0x60) = puVar3;
    puVar1 = PTR_byte_get_000c3394;
    if (puVar3 != (undefined4 *)0x0) {
      uVar6 = 0;
      puVar11 = PTR_s_TADECL_000c3390 + -0xf2c;
      puVar9 = PTR_s_TADECL_000c3390 + -0xf60;
      iVar7 = iVar2;
      do {
        (**(code **)puVar1)(iVar7,4);
        pcVar10 = *(code **)puVar1;
        *puVar3 = extraout_v1;
        (*pcVar10)(iVar7 + 4,4);
        pcVar10 = *(code **)puVar1;
        puVar3[1] = extraout_v1_00;
        uVar12 = (*pcVar10)(iVar7 + 8,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 2) = uVar12;
        uVar12 = (*pcVar10)(iVar7 + 0xc,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 4) = uVar12;
        uVar12 = (*pcVar10)(iVar7 + 0x10,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 6) = uVar12;
        uVar12 = (*pcVar10)(iVar7 + 0x14,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 8) = uVar12;
        (*pcVar10)(iVar7 + 0x18,4);
        pcVar10 = *(code **)puVar1;
        puVar3[10] = extraout_v1_01;
        (*pcVar10)(iVar7 + 0x1c,4);
        pcVar10 = *(code **)puVar1;
        puVar3[0xb] = extraout_v1_02;
        uVar12 = (*pcVar10)(iVar7 + 0x20,4);
        pcVar10 = *(code **)puVar1;
        *(undefined8 *)(puVar3 + 0xc) = uVar12;
        uVar12 = (*pcVar10)(iVar7 + 0x24,4);
        *(undefined8 *)(puVar3 + 0xe) = uVar12;
        if (param_2 == 0) {
          if (uVar8 < (uint)puVar3[10]) {
            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar9,5);
            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[10]);
          }
          if (((puVar3[3] & 0x40) != 0) && (uVar8 < (uint)puVar3[0xb])) {
            uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar11,5);
            (*(code *)PTR_warn_000c33a4)(uVar4,uVar6,puVar3[0xb]);
          }
        }
        uVar6 = uVar6 + 1;
        puVar3 = puVar3 + 0x12;
        iVar7 = iVar7 + 0x28;
      } while (uVar6 != uVar8);
      (*(code *)PTR_free_000c3620)(iVar2);
      return 1;
    }
    if (param_2 == 0) {
      uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + -0xf8c,5);
      (*(code *)PTR_error_000c3398)(uVar4,uVar8);
    }
  }
  return 0;
}

