
bfd_boolean get_program_headers(Filedata *filedata)

{
  Elf_Internal_Phdr *pEVar1;
  Filedata *pFVar2;
  void *pvVar3;
  undefined4 uVar4;
  ulong extraout_v1;
  ulong extraout_v1_00;
  ulong extraout_v1_01;
  ulong extraout_v1_02;
  uint uVar5;
  int iVar6;
  undefined *puVar7;
  uint uVar8;
  void *pvVar9;
  char *pcVar10;
  Elf_Internal_Phdr *pEVar11;
  code *pcVar12;
  bfd_vma bVar13;
  
  puVar7 = PTR_DAT_000c3378;
  iVar6 = 0x38;
  uVar5 = (filedata->file_header).e_phnum;
  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {
    iVar6 = 0x20;
  }
  if ((*(int *)&filedata->file_size == 0) && ((uint)filedata->file_size <= uVar5 * iVar6)) {
    puVar7 = PTR_s_TADECL_000c3390 + 0x1110;
LAB_00029d78:
    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar7,5);
    (*(code *)PTR_error_000c3398)(uVar4,(filedata->file_header).e_phnum);
    return 0;
  }
  pEVar1 = (Elf_Internal_Phdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar5,0x38);
  if (pEVar1 == (Elf_Internal_Phdr *)0x0) {
    puVar7 = PTR_s_TADECL_000c3390 + 0x114c;
    goto LAB_00029d78;
  }
  uVar8 = (filedata->file_header).e_phnum;
  uVar5 = (filedata->file_header).e_phentsize;
  if (*(int *)(puVar7 + 0x4648) == 0) {
    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;
    if (0x37 < uVar5) {
      if (uVar5 != 0x38) {
        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);
        (*(code *)PTR_warn_000c33a4)(uVar4);
      }
      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);
      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);
      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,
                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);
      puVar7 = PTR_byte_get_000c3394;
      if (pvVar3 != (void *)0x0) {
        if ((filedata->file_header).e_phnum != 0) {
          uVar5 = 0;
          pvVar9 = pvVar3;
          pEVar11 = pEVar1;
          do {
            (**(code **)puVar7)(pvVar9,4);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_type = extraout_v1_01;
            uVar5 = uVar5 + 1;
            (*pcVar12)((int)pvVar9 + 4,4);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_flags = extraout_v1_02;
            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_offset = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_vaddr = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_paddr = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_filesz = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);
            iVar6 = (int)pvVar9 + 0x30;
            pcVar12 = *(code **)puVar7;
            pvVar9 = (void *)((int)pvVar9 + 0x38);
            pEVar11->p_memsz = bVar13;
            bVar13 = (*pcVar12)(iVar6,8);
            uVar8 = (filedata->file_header).e_phnum;
            pEVar11->p_align = bVar13;
            pEVar11 = pEVar11 + 1;
          } while (uVar5 < uVar8);
        }
        goto LAB_00029b48;
      }
      goto LAB_00029d20;
    }
  }
  else {
    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;
    if (0x1f < uVar5) {
      if (uVar5 != 0x20) {
        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);
        (*(code *)PTR_warn_000c33a4)(uVar4);
      }
      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);
      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);
      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,
                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);
      puVar7 = PTR_byte_get_000c3394;
      if (pvVar3 != (void *)0x0) {
        if ((filedata->file_header).e_phnum != 0) {
          uVar5 = 0;
          pvVar9 = pvVar3;
          pEVar11 = pEVar1;
          do {
            (**(code **)puVar7)(pvVar9,4);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_type = extraout_v1;
            uVar5 = uVar5 + 1;
            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_offset = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_vaddr = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_paddr = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_filesz = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);
            pcVar12 = *(code **)puVar7;
            pEVar11->p_memsz = bVar13;
            (*pcVar12)((int)pvVar9 + 0x18,4);
            iVar6 = (int)pvVar9 + 0x1c;
            pcVar12 = *(code **)puVar7;
            pEVar11->p_flags = extraout_v1_00;
            pvVar9 = (void *)((int)pvVar9 + 0x20);
            bVar13 = (*pcVar12)(iVar6,4);
            uVar8 = (filedata->file_header).e_phnum;
            pEVar11->p_align = bVar13;
            pEVar11 = pEVar11 + 1;
          } while (uVar5 < uVar8);
        }
LAB_00029b48:
        (*(code *)PTR_free_000c3620)(pvVar3);
        filedata->program_headers = pEVar1;
        return 1;
      }
      goto LAB_00029d20;
    }
  }
  uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);
  (*(code *)PTR_error_000c3398)(uVar4);
LAB_00029d20:
  (*(code *)PTR_free_000c3620)(pEVar1);
  return 0;
}



undefined4 FUN_00029958(int param_1)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  undefined4 extraout_v1;
  undefined4 extraout_v1_00;
  undefined4 extraout_v1_01;
  undefined4 extraout_v1_02;
  int iVar3;
  uint uVar4;
  int iVar5;
  undefined *puVar6;
  uint uVar7;
  int iVar8;
  undefined4 uVar9;
  undefined4 *puVar10;
  code *pcVar11;
  undefined8 uVar12;
  
  puVar6 = PTR_DAT_000c3378;
  iVar5 = 0x38;
  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {
    iVar5 = 0x20;
  }
  if ((*(int *)(param_1 + 8) == 0) &&
     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {
    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;
LAB_00029d78:
    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);
    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));
    return 0;
  }
  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);
  if (puVar1 == (undefined4 *)0x0) {
    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;
    goto LAB_00029d78;
  }
  iVar5 = *(int *)(param_1 + 0x4c);
  uVar7 = *(uint *)(param_1 + 0x48);
  if (*(int *)(puVar6 + 0x4648) == 0) {
    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;
    if (0x37 < uVar7) {
      if (uVar7 != 0x38) {
        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);
        (*(code *)PTR_warn_000c33a4)(uVar2);
      }
      uVar9 = *(undefined4 *)(param_1 + 0x2c);
      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);
      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);
      puVar6 = PTR_byte_get_000c3394;
      if (iVar5 != 0) {
        if (*(int *)(param_1 + 0x4c) != 0) {
          uVar7 = 0;
          iVar8 = iVar5;
          puVar10 = puVar1;
          do {
            (**(code **)puVar6)(iVar8,4);
            pcVar11 = *(code **)puVar6;
            *puVar10 = extraout_v1_01;
            uVar7 = uVar7 + 1;
            (*pcVar11)(iVar8 + 4,4);
            pcVar11 = *(code **)puVar6;
            puVar10[1] = extraout_v1_02;
            uVar12 = (*pcVar11)(iVar8 + 8,8);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 2) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x10,8);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 4) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x18,8);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 6) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x20,8);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 8) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x28,8);
            iVar3 = iVar8 + 0x30;
            pcVar11 = *(code **)puVar6;
            iVar8 = iVar8 + 0x38;
            *(undefined8 *)(puVar10 + 10) = uVar12;
            uVar12 = (*pcVar11)(iVar3,8);
            uVar4 = *(uint *)(param_1 + 0x4c);
            *(undefined8 *)(puVar10 + 0xc) = uVar12;
            puVar10 = puVar10 + 0xe;
          } while (uVar7 < uVar4);
        }
        goto LAB_00029b48;
      }
      goto LAB_00029d20;
    }
  }
  else {
    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;
    if (0x1f < uVar7) {
      if (uVar7 != 0x20) {
        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);
        (*(code *)PTR_warn_000c33a4)(uVar2);
      }
      uVar9 = *(undefined4 *)(param_1 + 0x2c);
      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);
      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);
      puVar6 = PTR_byte_get_000c3394;
      if (iVar5 != 0) {
        if (*(int *)(param_1 + 0x4c) != 0) {
          uVar7 = 0;
          iVar8 = iVar5;
          puVar10 = puVar1;
          do {
            (**(code **)puVar6)(iVar8,4);
            pcVar11 = *(code **)puVar6;
            *puVar10 = extraout_v1;
            uVar7 = uVar7 + 1;
            uVar12 = (*pcVar11)(iVar8 + 4,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 2) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 8,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 4) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0xc,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 6) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x10,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 8) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x14,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 10) = uVar12;
            (*pcVar11)(iVar8 + 0x18,4);
            iVar3 = iVar8 + 0x1c;
            pcVar11 = *(code **)puVar6;
            puVar10[1] = extraout_v1_00;
            iVar8 = iVar8 + 0x20;
            uVar12 = (*pcVar11)(iVar3,4);
            uVar4 = *(uint *)(param_1 + 0x4c);
            *(undefined8 *)(puVar10 + 0xc) = uVar12;
            puVar10 = puVar10 + 0xe;
          } while (uVar7 < uVar4);
        }
LAB_00029b48:
        (*(code *)PTR_free_000c3620)(iVar5);
        *(undefined4 **)(param_1 + 100) = puVar1;
        return 1;
      }
      goto LAB_00029d20;
    }
  }
  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);
  (*(code *)PTR_error_000c3398)(uVar2);
LAB_00029d20:
  (*(code *)PTR_free_000c3620)(puVar1);
  return 0;
}


lui gp,0xa
addiu gp,gp,0x19f8
addu gp,gp,t9
addiu sp,sp,-0x50
li a2,0x20
li a1,0x38
sw s0,0x30(sp)
lw s0,-0x7fd8(gp)
sw s1,0x34(sp)
or s1,a0,zero
sw gp,0x28(sp)
sw ra,0x4c(sp)
lw v0,0x4648(s0)
lw a0,0x4c(a0)
lw v1,0x8(s1)
movn a1,a2,v0
sw s6,0x48(sp)
sw s5,0x44(sp)
sw s4,0x40(sp)
mul v0,a0,a1
sw s3,0x3c(sp)
beq v1,zero,0x00029d54
_sw s2,0x38(sp)
lw t9,-0x7f98(gp)
jalr t9
_li a1,0x38
lw gp,0x28(sp)
beq v0,zero,0x00029dc0
_or s4,v0,zero
lw v0,0x4648(s0)
lw s2,0x4c(s1)
beq v0,zero,0x00029b80
_lw s0,0x48(s1)
beq s0,zero,0x00029d20
_lw t9,-0x7d30(gp)
beq s2,zero,0x00029d20
_sltiu v0,s0,0x20
bne v0,zero,0x00029cf0
_li v0,0x20
bne s0,v0,0x00029dd8
_li a2,0x5
lw a1,-0x7fc0(gp)
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
lw s3,0x2c(s1)
jalr t9
_addiu a1,a1,0x122c
addiu a2,s1,0x8
lw gp,0x28(sp)
addiu a1,s1,0x4
or a0,zero,zero
sw v0,0x20(sp)
sw s2,0x1c(sp)
or a3,s3,zero
sw zero,0x18(sp)
sw s0,0x14(sp)
lw t9,-0x7fb0(gp)
addiu t9,t9,0x253c
bal 0x0002253c
_sw zero,0x10(sp)
lw gp,0x28(sp)
beq v0,zero,0x00029d1c
_or s6,v0,zero
lw v0,0x4c(s1)
beq v0,zero,0x00029b44
_lw s0,-0x7fbc(gp)
or s5,zero,zero
or s3,s4,zero
or s2,s6,zero
lw t9,0x0(s0)
li a1,0x4
or a0,s2,zero
jalr t9
_addiu s3,s3,0x38
addiu a0,s2,0x4
lw t9,0x0(s0)
li a1,0x4
sw v1,-0x38(s3)
jalr t9
_addiu s5,s5,0x1
addiu a0,s2,0x8
lw t9,0x0(s0)
li a1,0x4
sw v1,-0x2c(s3)
jalr t9
_sw v0,-0x30(s3)
addiu a0,s2,0xc
lw t9,0x0(s0)
li a1,0x4
sw v1,-0x24(s3)
jalr t9
_sw v0,-0x28(s3)
addiu a0,s2,0x10
lw t9,0x0(s0)
li a1,0x4
sw v1,-0x1c(s3)
jalr t9
_sw v0,-0x20(s3)
addiu a0,s2,0x14
lw t9,0x0(s0)
li a1,0x4
sw v1,-0x14(s3)
jalr t9
_sw v0,-0x18(s3)
addiu a0,s2,0x18
lw t9,0x0(s0)
li a1,0x4
sw v1,-0xc(s3)
jalr t9
_sw v0,-0x10(s3)
addiu a0,s2,0x1c
lw t9,0x0(s0)
li a1,0x4
sw v1,-0x34(s3)
jalr t9
_addiu s2,s2,0x20
lw a0,0x4c(s1)
lw gp,0x28(sp)
sw v1,-0x4(s3)
sltu a0,s5,a0
bne a0,zero,0x00029a70
_sw v0,-0x8(s3)
lw t9,-0x7d30(gp)
jalr t9
_or a0,s6,zero
li v0,0x1
lw ra,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s0,0x30(sp)
sw s4,0x64(s1)
lw s4,0x40(sp)
lw s1,0x34(sp)
jr ra
_addiu sp,sp,0x50
beq s0,zero,0x00029d20
_lw t9,-0x7d30(gp)
beq s2,zero,0x00029d20
_sltiu v0,s0,0x38
bne v0,zero,0x00029cf0
_li v0,0x38
bne s0,v0,0x00029e04
_li a2,0x5
lw a1,-0x7fc0(gp)
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
lw s3,0x2c(s1)
jalr t9
_addiu a1,a1,0x122c
addiu a2,s1,0x8
lw gp,0x28(sp)
addiu a1,s1,0x4
or a0,zero,zero
sw v0,0x20(sp)
sw s2,0x1c(sp)
or a3,s3,zero
sw zero,0x18(sp)
sw s0,0x14(sp)
lw t9,-0x7fb0(gp)
addiu t9,t9,0x253c
bal 0x0002253c
_sw zero,0x10(sp)
lw gp,0x28(sp)
beq v0,zero,0x00029d1c
_or s6,v0,zero
lw v0,0x4c(s1)
beq v0,zero,0x00029b44
_lw s0,-0x7fbc(gp)
or s5,zero,zero
or s3,s4,zero
or s2,s6,zero
lw t9,0x0(s0)
li a1,0x4
or a0,s2,zero
jalr t9
_addiu s3,s3,0x38
addiu a0,s2,0x4
lw t9,0x0(s0)
li a1,0x4
sw v1,-0x38(s3)
jalr t9
_addiu s5,s5,0x1
addiu a0,s2,0x8
lw t9,0x0(s0)
li a1,0x8
jalr t9
_sw v1,-0x34(s3)
addiu a0,s2,0x10
lw t9,0x0(s0)
li a1,0x8
sw v1,-0x2c(s3)
jalr t9
_sw v0,-0x30(s3)
addiu a0,s2,0x18
lw t9,0x0(s0)
li a1,0x8
sw v1,-0x24(s3)
jalr t9
_sw v0,-0x28(s3)
addiu a0,s2,0x20
lw t9,0x0(s0)
li a1,0x8
sw v1,-0x1c(s3)
jalr t9
_sw v0,-0x20(s3)
addiu a0,s2,0x28
lw t9,0x0(s0)
li a1,0x8
sw v1,-0x14(s3)
jalr t9
_sw v0,-0x18(s3)
addiu a0,s2,0x30
lw t9,0x0(s0)
li a1,0x8
sw v1,-0xc(s3)
addiu s2,s2,0x38
jalr t9
_sw v0,-0x10(s3)
lw a0,0x4c(s1)
lw gp,0x28(sp)
sw v1,-0x4(s3)
sltu a0,s5,a0
bne a0,zero,0x00029c14
_sw v0,-0x8(s3)
b 0x00029b48
_lw t9,-0x7d30(gp)
lw a1,-0x7fc0(gp)
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x1178
lw gp,0x28(sp)
lw t9,-0x7fb8(gp)
jalr t9
_or a0,v0,zero
lw gp,0x28(sp)
lw t9,-0x7d30(gp)
jalr t9
_or a0,s4,zero
or v0,zero,zero
lw ra,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x50
lw v1,0xc(s1)
sltu v0,v0,v1
bne v0,zero,0x000299b8
_lw t9,-0x7f98(gp)
lw a1,-0x7fc0(gp)
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
addiu a1,a1,0x1110
jalr t9
_nop
lw gp,0x28(sp)
or a0,v0,zero
lw t9,-0x7fb8(gp)
jalr t9
_lw a1,0x4c(s1)
or v0,zero,zero
lw ra,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x50
lw a1,-0x7fc0(gp)
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
b 0x00029d78
_addiu a1,a1,0x114c
lw a1,-0x7fc0(gp)
lw t9,-0x7d44(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x11d0
lw gp,0x28(sp)
lw t9,-0x7fac(gp)
jalr t9
_or a0,v0,zero
b 0x000299fc
_lw gp,0x28(sp)
lw a1,-0x7fc0(gp)
lw t9,-0x7d44(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x11d0
lw gp,0x28(sp)
lw t9,-0x7fac(gp)
jalr t9
_or a0,v0,zero
b 0x00029ba0
_lw gp,0x28(sp)
(translation_unit "undefined4 FUN_00029958(int param_1)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  undefined8 uVar12;\n  \n  puVar6 = PTR_DAT_000c3378;\n  iVar5 = 0x38;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }\n  if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }\n  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  iVar5 = *(int *)(param_1 + 0x4c);\n  uVar7 = *(uint *)(param_1 + 0x48);\n  if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar2);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_00029958(int param_1)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  undefined8 uVar12;\n  \n  puVar6 = PTR_DAT_000c3378;\n  iVar5 = 0x38;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }\n  if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }\n  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  iVar5 = *(int *)(param_1 + 0x4c);\n  uVar7 = *(uint *)(param_1 + 0x48);\n  if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar2);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);\n  return 0;\n}" type_identifier (function_declarator "FUN_00029958(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  undefined8 uVar12;\n  \n  puVar6 = PTR_DAT_000c3378;\n  iVar5 = 0x38;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }\n  if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }\n  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  iVar5 = *(int *)(param_1 + 0x4c);\n  uVar7 = *(uint *)(param_1 + 0x48);\n  if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar2);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);\n  return 0;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" 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 "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (expression_statement "puVar6 = PTR_DAT_000c3378;" (assignment_expression "puVar6 = PTR_DAT_000c3378" identifier = identifier) ;) (expression_statement "iVar5 = 0x38;" (assignment_expression "iVar5 = 0x38" identifier = number_literal) ;) (if_statement "if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_000c3378 + 0x4648) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000c3378 + 0x4648) != 0" (pointer_expression "*(int *)(PTR_DAT_000c3378 + 0x4648)" * (cast_expression "(int *)(PTR_DAT_000c3378 + 0x4648)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000c3378 + 0x4648)" ( (binary_expression "PTR_DAT_000c3378 + 0x4648" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar5 = 0x20;\n  }" { (expression_statement "iVar5 = 0x20;" (assignment_expression "iVar5 = 0x20" identifier = number_literal) ;) })) (if_statement "if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }" if (parenthesized_expression "((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5)))" ( (binary_expression "(*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))" (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" ( (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))" ( (binary_expression "*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5)" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) <= (call_expression "(uint)(*(int *)(param_1 + 0x4c) * iVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x4c) * iVar5)" ( (binary_expression "*(int *)(param_1 + 0x4c) * iVar5" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) * identifier) )))) ))) )) (compound_statement "{\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }" { (expression_statement "puVar6 = PTR_s_TADECL_000c3390 + 0x1110;" (assignment_expression "puVar6 = PTR_s_TADECL_000c3390 + 0x1110" identifier = (binary_expression "PTR_s_TADECL_000c3390 + 0x1110" identifier + number_literal)) ;) (labeled_statement "LAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);" statement_identifier : (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar6,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,puVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "(*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));" (call_expression "(*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c))" (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 "(uVar2,*(undefined4 *)(param_1 + 0x4c))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);" (assignment_expression "puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38)" (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 "(*(int *)(param_1 + 0x4c),0x38)" ( (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }" if (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" ( (binary_expression "puVar1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }" { (expression_statement "puVar6 = PTR_s_TADECL_000c3390 + 0x114c;" (assignment_expression "puVar6 = PTR_s_TADECL_000c3390 + 0x114c" identifier = (binary_expression "PTR_s_TADECL_000c3390 + 0x114c" identifier + number_literal)) ;) (goto_statement "goto LAB_00029d78;" goto statement_identifier ;) })) (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(param_1 + 0x48);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x48)" identifier = (pointer_expression "*(uint *)(param_1 + 0x48)" * (cast_expression "(uint *)(param_1 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" if (parenthesized_expression "(*(int *)(puVar6 + 0x4648) == 0)" ( (binary_expression "*(int *)(puVar6 + 0x4648) == 0" (pointer_expression "*(int *)(puVar6 + 0x4648)" * (cast_expression "(int *)(puVar6 + 0x4648)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x4648)" ( (binary_expression "puVar6 + 0x4648" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }" { (if_statement "if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;" if (parenthesized_expression "((uVar7 == 0) || (iVar5 == 0))" ( (binary_expression "(uVar7 == 0) || (iVar5 == 0)" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;)) (if_statement "if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }" if (parenthesized_expression "(0x37 < uVar7)" ( (binary_expression "0x37 < uVar7" number_literal < identifier) )) (compound_statement "{\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }" { (if_statement "if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" if (parenthesized_expression "(uVar7 != 0x38)" ( (binary_expression "uVar7 != 0x38" identifier != number_literal) )) (compound_statement "{\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" { (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,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 + 0x11d0,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x11d0" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar2);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar2)" (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 "(uVar2)" ( identifier ))) ;) })) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,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 + 0x122c,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x122c" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);" (assignment_expression "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" identifier = (call_expression "FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" identifier (argument_list "(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" ( 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 )))) ;) (expression_statement "puVar6 = PTR_byte_get_000c3394;" (assignment_expression "puVar6 = PTR_byte_get_000c3394" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }" { (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = iVar5;" (assignment_expression "iVar8 = iVar5" identifier = identifier) ;) (expression_statement "puVar10 = puVar1;" (assignment_expression "puVar10 = puVar1" identifier = identifier) ;) (do_statement "do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);" do (compound_statement "{\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          }" { (expression_statement "(**(code **)puVar6)(iVar8,4);" (call_expression "(**(code **)puVar6)(iVar8,4)" (parenthesized_expression "(**(code **)puVar6)" ( (pointer_expression "**(code **)puVar6" * (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(iVar8,4)" ( identifier , number_literal ))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*puVar10 = extraout_v1_01;" (assignment_expression "*puVar10 = extraout_v1_01" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar11)(iVar8 + 4,4);" (call_expression "(*pcVar11)(iVar8 + 4,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 4,4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) , number_literal ))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar10[1] = extraout_v1_02;" (assignment_expression "puVar10[1] = extraout_v1_02" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 8,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 8,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 8,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 8,8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 2) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 2) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 2)" * (cast_expression "(undefined8 *)(puVar10 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x10,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x10,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x10,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x10,8)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 4) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 4) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 4)" * (cast_expression "(undefined8 *)(puVar10 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x18,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x18,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x18,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x18,8)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 6) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 6) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 6)" * (cast_expression "(undefined8 *)(puVar10 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 6)" ( (binary_expression "puVar10 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x20,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x20,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x20,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x20,8)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 8) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 8) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 8)" * (cast_expression "(undefined8 *)(puVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x28,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x28,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x28,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x28,8)" ( (binary_expression "iVar8 + 0x28" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar3 = iVar8 + 0x30;" (assignment_expression "iVar3 = iVar8 + 0x30" identifier = (binary_expression "iVar8 + 0x30" identifier + number_literal)) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar8 = iVar8 + 0x38;" (assignment_expression "iVar8 = iVar8 + 0x38" identifier = (binary_expression "iVar8 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(puVar10 + 10) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 10) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 10)" * (cast_expression "(undefined8 *)(puVar10 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 10)" ( (binary_expression "puVar10 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar3,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar3,8)" identifier = (call_expression "(*pcVar11)(iVar3,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar3,8)" ( identifier , number_literal )))) ;) (expression_statement "uVar4 = *(uint *)(param_1 + 0x4c);" (assignment_expression "uVar4 = *(uint *)(param_1 + 0x4c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(puVar10 + 0xc) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 0xc) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 0xc)" * (cast_expression "(undefined8 *)(puVar10 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar10 + 0xe;" (assignment_expression "puVar10 = puVar10 + 0xe" identifier = (binary_expression "puVar10 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 < uVar4)" ( (binary_expression "uVar7 < uVar4" identifier < identifier) )) ;) })) (goto_statement "goto LAB_00029b48;" goto statement_identifier ;) })) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" else (compound_statement "{\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" { (if_statement "if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;" if (parenthesized_expression "((uVar7 == 0) || (iVar5 == 0))" ( (binary_expression "(uVar7 == 0) || (iVar5 == 0)" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;)) (if_statement "if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }" if (parenthesized_expression "(0x1f < uVar7)" ( (binary_expression "0x1f < uVar7" number_literal < identifier) )) (compound_statement "{\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }" { (if_statement "if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" if (parenthesized_expression "(uVar7 != 0x20)" ( (binary_expression "uVar7 != 0x20" identifier != number_literal) )) (compound_statement "{\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" { (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,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 + 0x11d0,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x11d0" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar2);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar2)" (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 "(uVar2)" ( identifier ))) ;) })) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,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 + 0x122c,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x122c" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);" (assignment_expression "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" identifier = (call_expression "FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" identifier (argument_list "(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" ( 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 )))) ;) (expression_statement "puVar6 = PTR_byte_get_000c3394;" (assignment_expression "puVar6 = PTR_byte_get_000c3394" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }" { (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = iVar5;" (assignment_expression "iVar8 = iVar5" identifier = identifier) ;) (expression_statement "puVar10 = puVar1;" (assignment_expression "puVar10 = puVar1" identifier = identifier) ;) (do_statement "do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);" do (compound_statement "{\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          }" { (expression_statement "(**(code **)puVar6)(iVar8,4);" (call_expression "(**(code **)puVar6)(iVar8,4)" (parenthesized_expression "(**(code **)puVar6)" ( (pointer_expression "**(code **)puVar6" * (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(iVar8,4)" ( identifier , number_literal ))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*puVar10 = extraout_v1;" (assignment_expression "*puVar10 = extraout_v1" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 4,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 4,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 4,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 4,4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 2) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 2) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 2)" * (cast_expression "(undefined8 *)(puVar10 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 8,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 8,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 8,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 8,4)" ( (binary_expression "iVar8 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 4) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 4) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 4)" * (cast_expression "(undefined8 *)(puVar10 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0xc,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0xc,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 0xc,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0xc,4)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 6) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 6) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 6)" * (cast_expression "(undefined8 *)(puVar10 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 6)" ( (binary_expression "puVar10 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x10,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x10,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x10,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x10,4)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 8) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 8) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 8)" * (cast_expression "(undefined8 *)(puVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x14,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x14,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x14,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x14,4)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 10) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 10) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 10)" * (cast_expression "(undefined8 *)(puVar10 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 10)" ( (binary_expression "puVar10 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar11)(iVar8 + 0x18,4);" (call_expression "(*pcVar11)(iVar8 + 0x18,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x18,4)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar3 = iVar8 + 0x1c;" (assignment_expression "iVar3 = iVar8 + 0x1c" identifier = (binary_expression "iVar8 + 0x1c" identifier + number_literal)) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar10[1] = extraout_v1_00;" (assignment_expression "puVar10[1] = extraout_v1_00" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = iVar8 + 0x20;" (assignment_expression "iVar8 = iVar8 + 0x20" identifier = (binary_expression "iVar8 + 0x20" identifier + number_literal)) ;) (expression_statement "uVar12 = (*pcVar11)(iVar3,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar3,4)" identifier = (call_expression "(*pcVar11)(iVar3,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar3,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar4 = *(uint *)(param_1 + 0x4c);" (assignment_expression "uVar4 = *(uint *)(param_1 + 0x4c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(puVar10 + 0xc) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 0xc) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 0xc)" * (cast_expression "(undefined8 *)(puVar10 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar10 + 0xe;" (assignment_expression "puVar10 = puVar10 + 0xe" identifier = (binary_expression "puVar10 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 < uVar4)" ( (binary_expression "uVar7 < uVar4" identifier < identifier) )) ;) })) (labeled_statement "LAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);" statement_identifier : (expression_statement "(*(code *)PTR_free_000c3620)(iVar5);" (call_expression "(*(code *)PTR_free_000c3620)(iVar5)" (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 "(iVar5)" ( identifier ))) ;)) (expression_statement "*(undefined4 **)(param_1 + 100) = puVar1;" (assignment_expression "*(undefined4 **)(param_1 + 100) = puVar1" (pointer_expression "*(undefined4 **)(param_1 + 100)" * (cast_expression "(undefined4 **)(param_1 + 100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;) })) }))) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,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 + 0x1178,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x1178" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_000c3398)(uVar2);" (call_expression "(*(code *)PTR_error_000c3398)(uVar2)" (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 "(uVar2)" ( identifier ))) ;) (labeled_statement "LAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);" statement_identifier : (expression_statement "(*(code *)PTR_free_000c3620)(puVar1);" (call_expression "(*(code *)PTR_free_000c3620)(puVar1)" (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 "(puVar1)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "bfd_boolean get_program_headers(Filedata *filedata)\n\n{\n  Elf_Internal_Phdr *pEVar1;\n  Filedata *pFVar2;\n  void *pvVar3;\n  undefined4 uVar4;\n  ulong extraout_v1;\n  ulong extraout_v1_00;\n  ulong extraout_v1_01;\n  ulong extraout_v1_02;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  uint uVar8;\n  void *pvVar9;\n  char *pcVar10;\n  Elf_Internal_Phdr *pEVar11;\n  code *pcVar12;\n  bfd_vma bVar13;\n  \n  puVar7 = PTR_DAT_000c3378;\n  iVar6 = 0x38;\n  uVar5 = (filedata->file_header).e_phnum;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar6 = 0x20;\n  }\n  if ((*(int *)&filedata->file_size == 0) && ((uint)filedata->file_size <= uVar5 * iVar6)) {\n    puVar7 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar7,5);\n    (*(code *)PTR_error_000c3398)(uVar4,(filedata->file_header).e_phnum);\n    return 0;\n  }\n  pEVar1 = (Elf_Internal_Phdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar5,0x38);\n  if (pEVar1 == (Elf_Internal_Phdr *)0x0) {\n    puVar7 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  uVar8 = (filedata->file_header).e_phnum;\n  uVar5 = (filedata->file_header).e_phentsize;\n  if (*(int *)(puVar7 + 0x4648) == 0) {\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar5) {\n      if (uVar5 != 0x38) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar5) {\n      if (uVar5 != 0x20) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar4);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(pEVar1);\n  return 0;\n}\n\n" (function_definition "bfd_boolean get_program_headers(Filedata *filedata)\n\n{\n  Elf_Internal_Phdr *pEVar1;\n  Filedata *pFVar2;\n  void *pvVar3;\n  undefined4 uVar4;\n  ulong extraout_v1;\n  ulong extraout_v1_00;\n  ulong extraout_v1_01;\n  ulong extraout_v1_02;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  uint uVar8;\n  void *pvVar9;\n  char *pcVar10;\n  Elf_Internal_Phdr *pEVar11;\n  code *pcVar12;\n  bfd_vma bVar13;\n  \n  puVar7 = PTR_DAT_000c3378;\n  iVar6 = 0x38;\n  uVar5 = (filedata->file_header).e_phnum;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar6 = 0x20;\n  }\n  if ((*(int *)&filedata->file_size == 0) && ((uint)filedata->file_size <= uVar5 * iVar6)) {\n    puVar7 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar7,5);\n    (*(code *)PTR_error_000c3398)(uVar4,(filedata->file_header).e_phnum);\n    return 0;\n  }\n  pEVar1 = (Elf_Internal_Phdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar5,0x38);\n  if (pEVar1 == (Elf_Internal_Phdr *)0x0) {\n    puVar7 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  uVar8 = (filedata->file_header).e_phnum;\n  uVar5 = (filedata->file_header).e_phentsize;\n  if (*(int *)(puVar7 + 0x4648) == 0) {\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar5) {\n      if (uVar5 != 0x38) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar5) {\n      if (uVar5 != 0x20) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar4);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(pEVar1);\n  return 0;\n}" type_identifier (function_declarator "get_program_headers(Filedata *filedata)" identifier (parameter_list "(Filedata *filedata)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) ))) (compound_statement "{\n  Elf_Internal_Phdr *pEVar1;\n  Filedata *pFVar2;\n  void *pvVar3;\n  undefined4 uVar4;\n  ulong extraout_v1;\n  ulong extraout_v1_00;\n  ulong extraout_v1_01;\n  ulong extraout_v1_02;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  uint uVar8;\n  void *pvVar9;\n  char *pcVar10;\n  Elf_Internal_Phdr *pEVar11;\n  code *pcVar12;\n  bfd_vma bVar13;\n  \n  puVar7 = PTR_DAT_000c3378;\n  iVar6 = 0x38;\n  uVar5 = (filedata->file_header).e_phnum;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar6 = 0x20;\n  }\n  if ((*(int *)&filedata->file_size == 0) && ((uint)filedata->file_size <= uVar5 * iVar6)) {\n    puVar7 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar7,5);\n    (*(code *)PTR_error_000c3398)(uVar4,(filedata->file_header).e_phnum);\n    return 0;\n  }\n  pEVar1 = (Elf_Internal_Phdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar5,0x38);\n  if (pEVar1 == (Elf_Internal_Phdr *)0x0) {\n    puVar7 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  uVar8 = (filedata->file_header).e_phnum;\n  uVar5 = (filedata->file_header).e_phentsize;\n  if (*(int *)(puVar7 + 0x4648) == 0) {\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar5) {\n      if (uVar5 != 0x38) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar5) {\n      if (uVar5 != 0x20) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar4);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(pEVar1);\n  return 0;\n}" { (declaration "Elf_Internal_Phdr *pEVar1;" type_identifier (pointer_declarator "*pEVar1" * identifier) ;) (declaration "Filedata *pFVar2;" type_identifier (pointer_declarator "*pFVar2" * identifier) ;) (declaration "void *pvVar3;" primitive_type (pointer_declarator "*pvVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "ulong extraout_v1;" type_identifier identifier ;) (declaration "ulong extraout_v1_00;" type_identifier identifier ;) (declaration "ulong extraout_v1_01;" type_identifier identifier ;) (declaration "ulong extraout_v1_02;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "void *pvVar9;" primitive_type (pointer_declarator "*pvVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "Elf_Internal_Phdr *pEVar11;" type_identifier (pointer_declarator "*pEVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "bfd_vma bVar13;" type_identifier identifier ;) (expression_statement "puVar7 = PTR_DAT_000c3378;" (assignment_expression "puVar7 = PTR_DAT_000c3378" identifier = identifier) ;) (expression_statement "iVar6 = 0x38;" (assignment_expression "iVar6 = 0x38" identifier = number_literal) ;) (expression_statement "uVar5 = (filedata->file_header).e_phnum;" (assignment_expression "uVar5 = (filedata->file_header).e_phnum" identifier = (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar6 = 0x20;\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_000c3378 + 0x4648) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000c3378 + 0x4648) != 0" (pointer_expression "*(int *)(PTR_DAT_000c3378 + 0x4648)" * (cast_expression "(int *)(PTR_DAT_000c3378 + 0x4648)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000c3378 + 0x4648)" ( (binary_expression "PTR_DAT_000c3378 + 0x4648" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar6 = 0x20;\n  }" { (expression_statement "iVar6 = 0x20;" (assignment_expression "iVar6 = 0x20" identifier = number_literal) ;) })) (if_statement "if ((*(int *)&filedata->file_size == 0) && ((uint)filedata->file_size <= uVar5 * iVar6)) {\n    puVar7 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar7,5);\n    (*(code *)PTR_error_000c3398)(uVar4,(filedata->file_header).e_phnum);\n    return 0;\n  }" if (parenthesized_expression "((*(int *)&filedata->file_size == 0) && ((uint)filedata->file_size <= uVar5 * iVar6))" ( (binary_expression "(*(int *)&filedata->file_size == 0) && ((uint)filedata->file_size <= uVar5 * iVar6)" (parenthesized_expression "(*(int *)&filedata->file_size == 0)" ( (binary_expression "*(int *)&filedata->file_size == 0" (pointer_expression "*(int *)&filedata->file_size" * (cast_expression "(int *)&filedata->file_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&filedata->file_size" & (field_expression "filedata->file_size" identifier -> field_identifier)))) == number_literal) )) && (parenthesized_expression "((uint)filedata->file_size <= uVar5 * iVar6)" ( (binary_expression "(uint)filedata->file_size <= uVar5 * iVar6" (cast_expression "(uint)filedata->file_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "filedata->file_size" identifier -> field_identifier)) <= (binary_expression "uVar5 * iVar6" identifier * identifier)) ))) )) (compound_statement "{\n    puVar7 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar7,5);\n    (*(code *)PTR_error_000c3398)(uVar4,(filedata->file_header).e_phnum);\n    return 0;\n  }" { (expression_statement "puVar7 = PTR_s_TADECL_000c3390 + 0x1110;" (assignment_expression "puVar7 = PTR_s_TADECL_000c3390 + 0x1110" identifier = (binary_expression "PTR_s_TADECL_000c3390 + 0x1110" identifier + number_literal)) ;) (labeled_statement "LAB_00029d78:\n    uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar7,5);" statement_identifier : (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar7,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,puVar7,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar7,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,puVar7,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "(*(code *)PTR_error_000c3398)(uVar4,(filedata->file_header).e_phnum);" (call_expression "(*(code *)PTR_error_000c3398)(uVar4,(filedata->file_header).e_phnum)" (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,(filedata->file_header).e_phnum)" ( identifier , (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pEVar1 = (Elf_Internal_Phdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar5,0x38);" (assignment_expression "pEVar1 = (Elf_Internal_Phdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar5,0x38)" identifier = (cast_expression "(Elf_Internal_Phdr *)(*(code *)PTR_cmalloc_000c33b8)(uVar5,0x38)" ( (type_descriptor "Elf_Internal_Phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_cmalloc_000c33b8)(uVar5,0x38)" (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 "(uVar5,0x38)" ( identifier , number_literal ))))) ;) (if_statement "if (pEVar1 == (Elf_Internal_Phdr *)0x0) {\n    puVar7 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }" if (parenthesized_expression "(pEVar1 == (Elf_Internal_Phdr *)0x0)" ( (binary_expression "pEVar1 == (Elf_Internal_Phdr *)0x0" identifier == (cast_expression "(Elf_Internal_Phdr *)0x0" ( (type_descriptor "Elf_Internal_Phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar7 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }" { (expression_statement "puVar7 = PTR_s_TADECL_000c3390 + 0x114c;" (assignment_expression "puVar7 = PTR_s_TADECL_000c3390 + 0x114c" identifier = (binary_expression "PTR_s_TADECL_000c3390 + 0x114c" identifier + number_literal)) ;) (goto_statement "goto LAB_00029d78;" goto statement_identifier ;) })) (expression_statement "uVar8 = (filedata->file_header).e_phnum;" (assignment_expression "uVar8 = (filedata->file_header).e_phnum" identifier = (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar5 = (filedata->file_header).e_phentsize;" (assignment_expression "uVar5 = (filedata->file_header).e_phentsize" identifier = (field_expression "(filedata->file_header).e_phentsize" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (*(int *)(puVar7 + 0x4648) == 0) {\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar5) {\n      if (uVar5 != 0x38) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar5) {\n      if (uVar5 != 0x20) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" if (parenthesized_expression "(*(int *)(puVar7 + 0x4648) == 0)" ( (binary_expression "*(int *)(puVar7 + 0x4648) == 0" (pointer_expression "*(int *)(puVar7 + 0x4648)" * (cast_expression "(int *)(puVar7 + 0x4648)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x4648)" ( (binary_expression "puVar7 + 0x4648" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar5) {\n      if (uVar5 != 0x38) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }" { (if_statement "if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;" if (parenthesized_expression "((uVar5 == 0) || (uVar8 == 0))" ( (binary_expression "(uVar5 == 0) || (uVar8 == 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;)) (if_statement "if (0x37 < uVar5) {\n      if (uVar5 != 0x38) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }" if (parenthesized_expression "(0x37 < uVar5)" ( (binary_expression "0x37 < uVar5" number_literal < identifier) )) (compound_statement "{\n      if (uVar5 != 0x38) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }" { (if_statement "if (uVar5 != 0x38) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }" if (parenthesized_expression "(uVar5 != 0x38)" ( (binary_expression "uVar5 != 0x38" identifier != number_literal) )) (compound_statement "{\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,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 + 0x11d0,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x11d0" 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 "pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);" (assignment_expression "pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4)" identifier = (pointer_expression "*(char **)((int)&(filedata->file_header).e_phoff + 4)" * (cast_expression "(char **)((int)&(filedata->file_header).e_phoff + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(filedata->file_header).e_phoff + 4)" ( (binary_expression "(int)&(filedata->file_header).e_phoff + 4" (cast_expression "(int)&(filedata->file_header).e_phoff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(filedata->file_header).e_phoff" & (field_expression "(filedata->file_header).e_phoff" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);" (assignment_expression "pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" identifier = (cast_expression "(Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,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 + 0x122c,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x122c" identifier + number_literal) , number_literal ))))) ;) (expression_statement "pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);" (assignment_expression "pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2)" identifier = (call_expression "get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2)" identifier (argument_list "((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2)" ( (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)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , identifier , identifier )))) ;) (expression_statement "puVar7 = PTR_byte_get_000c3394;" (assignment_expression "puVar7 = PTR_byte_get_000c3394" identifier = identifier) ;) (if_statement "if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\n        goto LAB_00029b48;\n      }" if (parenthesized_expression "(pvVar3 != (void *)0x0)" ( (binary_expression "pvVar3 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\n        goto LAB_00029b48;\n      }" { (if_statement "if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }" if (parenthesized_expression "((filedata->file_header).e_phnum != 0)" ( (binary_expression "(filedata->file_header).e_phnum != 0" (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "pvVar9 = pvVar3;" (assignment_expression "pvVar9 = pvVar3" identifier = identifier) ;) (expression_statement "pEVar11 = pEVar1;" (assignment_expression "pEVar11 = pEVar1" identifier = identifier) ;) (do_statement "do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);" do (compound_statement "{\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1_01;\n            uVar5 = uVar5 + 1;\n            (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_02;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);\n            iVar6 = (int)pvVar9 + 0x30;\n            pcVar12 = *(code **)puVar7;\n            pvVar9 = (void *)((int)pvVar9 + 0x38);\n            pEVar11->p_memsz = bVar13;\n            bVar13 = (*pcVar12)(iVar6,8);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          }" { (expression_statement "(**(code **)puVar7)(pvVar9,4);" (call_expression "(**(code **)puVar7)(pvVar9,4)" (parenthesized_expression "(**(code **)puVar7)" ( (pointer_expression "**(code **)puVar7" * (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pvVar9,4)" ( identifier , number_literal ))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_type = extraout_v1_01;" (assignment_expression "pEVar11->p_type = extraout_v1_01" (field_expression "pEVar11->p_type" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar12)((int)pvVar9 + 4,4);" (call_expression "(*pcVar12)((int)pvVar9 + 4,4)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 4,4)" ( (binary_expression "(int)pvVar9 + 4" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal ))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_flags = extraout_v1_02;" (assignment_expression "pEVar11->p_flags = extraout_v1_02" (field_expression "pEVar11->p_flags" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 8,8);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 8,8)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 8,8)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 8,8)" ( (binary_expression "(int)pvVar9 + 8" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_offset = bVar13;" (assignment_expression "pEVar11->p_offset = bVar13" (field_expression "pEVar11->p_offset" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 0x10,8)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 0x10,8)" ( (binary_expression "(int)pvVar9 + 0x10" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_vaddr = bVar13;" (assignment_expression "pEVar11->p_vaddr = bVar13" (field_expression "pEVar11->p_vaddr" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 0x18,8)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 0x18,8)" ( (binary_expression "(int)pvVar9 + 0x18" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_paddr = bVar13;" (assignment_expression "pEVar11->p_paddr = bVar13" (field_expression "pEVar11->p_paddr" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 0x20,8)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 0x20,8)" ( (binary_expression "(int)pvVar9 + 0x20" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_filesz = bVar13;" (assignment_expression "pEVar11->p_filesz = bVar13" (field_expression "pEVar11->p_filesz" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 0x28,8)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 0x28,8)" ( (binary_expression "(int)pvVar9 + 0x28" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "iVar6 = (int)pvVar9 + 0x30;" (assignment_expression "iVar6 = (int)pvVar9 + 0x30" identifier = (binary_expression "(int)pvVar9 + 0x30" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pvVar9 = (void *)((int)pvVar9 + 0x38);" (assignment_expression "pvVar9 = (void *)((int)pvVar9 + 0x38)" identifier = (cast_expression "(void *)((int)pvVar9 + 0x38)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar9 + 0x38)" ( (binary_expression "(int)pvVar9 + 0x38" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pEVar11->p_memsz = bVar13;" (assignment_expression "pEVar11->p_memsz = bVar13" (field_expression "pEVar11->p_memsz" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)(iVar6,8);" (assignment_expression "bVar13 = (*pcVar12)(iVar6,8)" identifier = (call_expression "(*pcVar12)(iVar6,8)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar6,8)" ( identifier , number_literal )))) ;) (expression_statement "uVar8 = (filedata->file_header).e_phnum;" (assignment_expression "uVar8 = (filedata->file_header).e_phnum" identifier = (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pEVar11->p_align = bVar13;" (assignment_expression "pEVar11->p_align = bVar13" (field_expression "pEVar11->p_align" identifier -> field_identifier) = identifier) ;) (expression_statement "pEVar11 = pEVar11 + 1;" (assignment_expression "pEVar11 = pEVar11 + 1" identifier = (binary_expression "pEVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < uVar8)" ( (binary_expression "uVar5 < uVar8" identifier < identifier) )) ;) })) (goto_statement "goto LAB_00029b48;" goto statement_identifier ;) })) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar5) {\n      if (uVar5 != 0x20) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" else (compound_statement "{\n    if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar5) {\n      if (uVar5 != 0x20) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" { (if_statement "if ((uVar5 == 0) || (uVar8 == 0)) goto LAB_00029d20;" if (parenthesized_expression "((uVar5 == 0) || (uVar8 == 0))" ( (binary_expression "(uVar5 == 0) || (uVar8 == 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;)) (if_statement "if (0x1f < uVar5) {\n      if (uVar5 != 0x20) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }" if (parenthesized_expression "(0x1f < uVar5)" ( (binary_expression "0x1f < uVar5" number_literal < identifier) )) (compound_statement "{\n      if (uVar5 != 0x20) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }\n      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);\n      pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);\n      puVar7 = PTR_byte_get_000c3394;\n      if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }" { (if_statement "if (uVar5 != 0x20) {\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }" if (parenthesized_expression "(uVar5 != 0x20)" ( (binary_expression "uVar5 != 0x20" identifier != number_literal) )) (compound_statement "{\n        uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar4);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,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 + 0x11d0,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x11d0" 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 "pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);" (assignment_expression "pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4)" identifier = (pointer_expression "*(char **)((int)&(filedata->file_header).e_phoff + 4)" * (cast_expression "(char **)((int)&(filedata->file_header).e_phoff + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(filedata->file_header).e_phoff + 4)" ( (binary_expression "(int)&(filedata->file_header).e_phoff + 4" (cast_expression "(int)&(filedata->file_header).e_phoff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(filedata->file_header).e_phoff" & (field_expression "(filedata->file_header).e_phoff" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);" (assignment_expression "pFVar2 = (Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" identifier = (cast_expression "(Filedata *)(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,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 + 0x122c,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x122c" identifier + number_literal) , number_literal ))))) ;) (expression_statement "pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2);" (assignment_expression "pvVar3 = get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2)" identifier = (call_expression "get_data((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2)" identifier (argument_list "((void *)0x0,(Filedata *)&filedata->handle,(ulong)&filedata->file_size,\n                        (ulonglong)uVar5,(ulonglong)uVar8,pcVar10,pFVar2)" ( (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)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , identifier , identifier )))) ;) (expression_statement "puVar7 = PTR_byte_get_000c3394;" (assignment_expression "puVar7 = PTR_byte_get_000c3394" identifier = identifier) ;) (if_statement "if (pvVar3 != (void *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }" if (parenthesized_expression "(pvVar3 != (void *)0x0)" ( (binary_expression "pvVar3 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);\n        filedata->program_headers = pEVar1;\n        return 1;\n      }" { (if_statement "if ((filedata->file_header).e_phnum != 0) {\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }" if (parenthesized_expression "((filedata->file_header).e_phnum != 0)" ( (binary_expression "(filedata->file_header).e_phnum != 0" (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n          uVar5 = 0;\n          pvVar9 = pvVar3;\n          pEVar11 = pEVar1;\n          do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);\n        }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "pvVar9 = pvVar3;" (assignment_expression "pvVar9 = pvVar3" identifier = identifier) ;) (expression_statement "pEVar11 = pEVar1;" (assignment_expression "pEVar11 = pEVar1" identifier = identifier) ;) (do_statement "do {\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          } while (uVar5 < uVar8);" do (compound_statement "{\n            (**(code **)puVar7)(pvVar9,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_type = extraout_v1;\n            uVar5 = uVar5 + 1;\n            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_offset = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_vaddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_paddr = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_filesz = bVar13;\n            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_memsz = bVar13;\n            (*pcVar12)((int)pvVar9 + 0x18,4);\n            iVar6 = (int)pvVar9 + 0x1c;\n            pcVar12 = *(code **)puVar7;\n            pEVar11->p_flags = extraout_v1_00;\n            pvVar9 = (void *)((int)pvVar9 + 0x20);\n            bVar13 = (*pcVar12)(iVar6,4);\n            uVar8 = (filedata->file_header).e_phnum;\n            pEVar11->p_align = bVar13;\n            pEVar11 = pEVar11 + 1;\n          }" { (expression_statement "(**(code **)puVar7)(pvVar9,4);" (call_expression "(**(code **)puVar7)(pvVar9,4)" (parenthesized_expression "(**(code **)puVar7)" ( (pointer_expression "**(code **)puVar7" * (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pvVar9,4)" ( identifier , number_literal ))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_type = extraout_v1;" (assignment_expression "pEVar11->p_type = extraout_v1" (field_expression "pEVar11->p_type" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 4,4);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 4,4)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 4,4)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 4,4)" ( (binary_expression "(int)pvVar9 + 4" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_offset = bVar13;" (assignment_expression "pEVar11->p_offset = bVar13" (field_expression "pEVar11->p_offset" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 8,4);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 8,4)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 8,4)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 8,4)" ( (binary_expression "(int)pvVar9 + 8" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_vaddr = bVar13;" (assignment_expression "pEVar11->p_vaddr = bVar13" (field_expression "pEVar11->p_vaddr" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 0xc,4)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 0xc,4)" ( (binary_expression "(int)pvVar9 + 0xc" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_paddr = bVar13;" (assignment_expression "pEVar11->p_paddr = bVar13" (field_expression "pEVar11->p_paddr" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 0x10,4)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 0x10,4)" ( (binary_expression "(int)pvVar9 + 0x10" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_filesz = bVar13;" (assignment_expression "pEVar11->p_filesz = bVar13" (field_expression "pEVar11->p_filesz" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);" (assignment_expression "bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4)" identifier = (call_expression "(*pcVar12)((int)pvVar9 + 0x14,4)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 0x14,4)" ( (binary_expression "(int)pvVar9 + 0x14" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_memsz = bVar13;" (assignment_expression "pEVar11->p_memsz = bVar13" (field_expression "pEVar11->p_memsz" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar12)((int)pvVar9 + 0x18,4);" (call_expression "(*pcVar12)((int)pvVar9 + 0x18,4)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "((int)pvVar9 + 0x18,4)" ( (binary_expression "(int)pvVar9 + 0x18" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal ))) ;) (expression_statement "iVar6 = (int)pvVar9 + 0x1c;" (assignment_expression "iVar6 = (int)pvVar9 + 0x1c" identifier = (binary_expression "(int)pvVar9 + 0x1c" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "pcVar12 = *(code **)puVar7;" (assignment_expression "pcVar12 = *(code **)puVar7" identifier = (pointer_expression "*(code **)puVar7" * (cast_expression "(code **)puVar7" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar11->p_flags = extraout_v1_00;" (assignment_expression "pEVar11->p_flags = extraout_v1_00" (field_expression "pEVar11->p_flags" identifier -> field_identifier) = identifier) ;) (expression_statement "pvVar9 = (void *)((int)pvVar9 + 0x20);" (assignment_expression "pvVar9 = (void *)((int)pvVar9 + 0x20)" identifier = (cast_expression "(void *)((int)pvVar9 + 0x20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar9 + 0x20)" ( (binary_expression "(int)pvVar9 + 0x20" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar13 = (*pcVar12)(iVar6,4);" (assignment_expression "bVar13 = (*pcVar12)(iVar6,4)" identifier = (call_expression "(*pcVar12)(iVar6,4)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar6,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar8 = (filedata->file_header).e_phnum;" (assignment_expression "uVar8 = (filedata->file_header).e_phnum" identifier = (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pEVar11->p_align = bVar13;" (assignment_expression "pEVar11->p_align = bVar13" (field_expression "pEVar11->p_align" identifier -> field_identifier) = identifier) ;) (expression_statement "pEVar11 = pEVar11 + 1;" (assignment_expression "pEVar11 = pEVar11 + 1" identifier = (binary_expression "pEVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < uVar8)" ( (binary_expression "uVar5 < uVar8" identifier < identifier) )) ;) })) (labeled_statement "LAB_00029b48:\n        (*(code *)PTR_free_000c3620)(pvVar3);" statement_identifier : (expression_statement "(*(code *)PTR_free_000c3620)(pvVar3);" (call_expression "(*(code *)PTR_free_000c3620)(pvVar3)" (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 "(pvVar3)" ( identifier ))) ;)) (expression_statement "filedata->program_headers = pEVar1;" (assignment_expression "filedata->program_headers = pEVar1" (field_expression "filedata->program_headers" identifier -> field_identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;) })) }))) (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,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 + 0x1178,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x1178" 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 ))) ;) (labeled_statement "LAB_00029d20:\n  (*(code *)PTR_free_000c3620)(pEVar1);" statement_identifier : (expression_statement "(*(code *)PTR_free_000c3620)(pEVar1);" (call_expression "(*(code *)PTR_free_000c3620)(pEVar1)" (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 "(pEVar1)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4 FUN_00029958(int param_1)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  undefined8 uVar12;\n  \n  puVar6 = PTR_DAT_000c3378;\n  iVar5 = 0x38;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }\n  if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }\n  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  iVar5 = *(int *)(param_1 + 0x4c);\n  uVar7 = *(uint *)(param_1 + 0x48);\n  if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar2);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_00029958(int param_1)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  undefined8 uVar12;\n  \n  puVar6 = PTR_DAT_000c3378;\n  iVar5 = 0x38;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }\n  if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }\n  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  iVar5 = *(int *)(param_1 + 0x4c);\n  uVar7 = *(uint *)(param_1 + 0x48);\n  if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar2);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);\n  return 0;\n}" type_identifier (function_declarator "FUN_00029958(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  undefined8 uVar12;\n  \n  puVar6 = PTR_DAT_000c3378;\n  iVar5 = 0x38;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }\n  if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }\n  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  iVar5 = *(int *)(param_1 + 0x4c);\n  uVar7 = *(uint *)(param_1 + 0x48);\n  if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar2);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);\n  return 0;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" 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 "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (expression_statement "puVar6 = PTR_DAT_000c3378;" (assignment_expression "puVar6 = PTR_DAT_000c3378" identifier = identifier) ;) (expression_statement "iVar5 = 0x38;" (assignment_expression "iVar5 = 0x38" identifier = number_literal) ;) (if_statement "if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_000c3378 + 0x4648) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000c3378 + 0x4648) != 0" (pointer_expression "*(int *)(PTR_DAT_000c3378 + 0x4648)" * (cast_expression "(int *)(PTR_DAT_000c3378 + 0x4648)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000c3378 + 0x4648)" ( (binary_expression "PTR_DAT_000c3378 + 0x4648" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar5 = 0x20;\n  }" { (expression_statement "iVar5 = 0x20;" (assignment_expression "iVar5 = 0x20" identifier = number_literal) ;) })) (if_statement "if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }" if (parenthesized_expression "((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5)))" ( (binary_expression "(*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))" (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" ( (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))" ( (binary_expression "*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5)" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) <= (call_expression "(uint)(*(int *)(param_1 + 0x4c) * iVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x4c) * iVar5)" ( (binary_expression "*(int *)(param_1 + 0x4c) * iVar5" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) * identifier) )))) ))) )) (compound_statement "{\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }" { (expression_statement "puVar6 = PTR_s_TADECL_000c3390 + 0x1110;" (assignment_expression "puVar6 = PTR_s_TADECL_000c3390 + 0x1110" identifier = (binary_expression "PTR_s_TADECL_000c3390 + 0x1110" identifier + number_literal)) ;) (labeled_statement "LAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);" statement_identifier : (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar6,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,puVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "(*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));" (call_expression "(*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c))" (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 "(uVar2,*(undefined4 *)(param_1 + 0x4c))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);" (assignment_expression "puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38)" (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 "(*(int *)(param_1 + 0x4c),0x38)" ( (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }" if (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" ( (binary_expression "puVar1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }" { (expression_statement "puVar6 = PTR_s_TADECL_000c3390 + 0x114c;" (assignment_expression "puVar6 = PTR_s_TADECL_000c3390 + 0x114c" identifier = (binary_expression "PTR_s_TADECL_000c3390 + 0x114c" identifier + number_literal)) ;) (goto_statement "goto LAB_00029d78;" goto statement_identifier ;) })) (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(param_1 + 0x48);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x48)" identifier = (pointer_expression "*(uint *)(param_1 + 0x48)" * (cast_expression "(uint *)(param_1 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" if (parenthesized_expression "(*(int *)(puVar6 + 0x4648) == 0)" ( (binary_expression "*(int *)(puVar6 + 0x4648) == 0" (pointer_expression "*(int *)(puVar6 + 0x4648)" * (cast_expression "(int *)(puVar6 + 0x4648)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x4648)" ( (binary_expression "puVar6 + 0x4648" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }" { (if_statement "if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;" if (parenthesized_expression "((uVar7 == 0) || (iVar5 == 0))" ( (binary_expression "(uVar7 == 0) || (iVar5 == 0)" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;)) (if_statement "if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }" if (parenthesized_expression "(0x37 < uVar7)" ( (binary_expression "0x37 < uVar7" number_literal < identifier) )) (compound_statement "{\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }" { (if_statement "if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" if (parenthesized_expression "(uVar7 != 0x38)" ( (binary_expression "uVar7 != 0x38" identifier != number_literal) )) (compound_statement "{\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" { (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,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 + 0x11d0,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x11d0" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar2);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar2)" (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 "(uVar2)" ( identifier ))) ;) })) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,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 + 0x122c,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x122c" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);" (assignment_expression "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" identifier = (call_expression "FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" identifier (argument_list "(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" ( 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 )))) ;) (expression_statement "puVar6 = PTR_byte_get_000c3394;" (assignment_expression "puVar6 = PTR_byte_get_000c3394" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }" { (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = iVar5;" (assignment_expression "iVar8 = iVar5" identifier = identifier) ;) (expression_statement "puVar10 = puVar1;" (assignment_expression "puVar10 = puVar1" identifier = identifier) ;) (do_statement "do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);" do (compound_statement "{\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          }" { (expression_statement "(**(code **)puVar6)(iVar8,4);" (call_expression "(**(code **)puVar6)(iVar8,4)" (parenthesized_expression "(**(code **)puVar6)" ( (pointer_expression "**(code **)puVar6" * (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(iVar8,4)" ( identifier , number_literal ))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*puVar10 = extraout_v1_01;" (assignment_expression "*puVar10 = extraout_v1_01" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar11)(iVar8 + 4,4);" (call_expression "(*pcVar11)(iVar8 + 4,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 4,4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) , number_literal ))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar10[1] = extraout_v1_02;" (assignment_expression "puVar10[1] = extraout_v1_02" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 8,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 8,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 8,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 8,8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 2) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 2) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 2)" * (cast_expression "(undefined8 *)(puVar10 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x10,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x10,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x10,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x10,8)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 4) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 4) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 4)" * (cast_expression "(undefined8 *)(puVar10 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x18,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x18,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x18,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x18,8)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 6) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 6) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 6)" * (cast_expression "(undefined8 *)(puVar10 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 6)" ( (binary_expression "puVar10 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x20,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x20,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x20,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x20,8)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 8) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 8) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 8)" * (cast_expression "(undefined8 *)(puVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x28,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x28,8)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x28,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x28,8)" ( (binary_expression "iVar8 + 0x28" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar3 = iVar8 + 0x30;" (assignment_expression "iVar3 = iVar8 + 0x30" identifier = (binary_expression "iVar8 + 0x30" identifier + number_literal)) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar8 = iVar8 + 0x38;" (assignment_expression "iVar8 = iVar8 + 0x38" identifier = (binary_expression "iVar8 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(puVar10 + 10) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 10) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 10)" * (cast_expression "(undefined8 *)(puVar10 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 10)" ( (binary_expression "puVar10 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar3,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar3,8)" identifier = (call_expression "(*pcVar11)(iVar3,8)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar3,8)" ( identifier , number_literal )))) ;) (expression_statement "uVar4 = *(uint *)(param_1 + 0x4c);" (assignment_expression "uVar4 = *(uint *)(param_1 + 0x4c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(puVar10 + 0xc) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 0xc) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 0xc)" * (cast_expression "(undefined8 *)(puVar10 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar10 + 0xe;" (assignment_expression "puVar10 = puVar10 + 0xe" identifier = (binary_expression "puVar10 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 < uVar4)" ( (binary_expression "uVar7 < uVar4" identifier < identifier) )) ;) })) (goto_statement "goto LAB_00029b48;" goto statement_identifier ;) })) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" else (compound_statement "{\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" { (if_statement "if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;" if (parenthesized_expression "((uVar7 == 0) || (iVar5 == 0))" ( (binary_expression "(uVar7 == 0) || (iVar5 == 0)" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;)) (if_statement "if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }" if (parenthesized_expression "(0x1f < uVar7)" ( (binary_expression "0x1f < uVar7" number_literal < identifier) )) (compound_statement "{\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }" { (if_statement "if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" if (parenthesized_expression "(uVar7 != 0x20)" ( (binary_expression "uVar7 != 0x20" identifier != number_literal) )) (compound_statement "{\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" { (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,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 + 0x11d0,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x11d0" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar2);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar2)" (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 "(uVar2)" ( identifier ))) ;) })) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,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 + 0x122c,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x122c" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);" (assignment_expression "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" identifier = (call_expression "FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" identifier (argument_list "(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" ( 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 )))) ;) (expression_statement "puVar6 = PTR_byte_get_000c3394;" (assignment_expression "puVar6 = PTR_byte_get_000c3394" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }" { (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = iVar5;" (assignment_expression "iVar8 = iVar5" identifier = identifier) ;) (expression_statement "puVar10 = puVar1;" (assignment_expression "puVar10 = puVar1" identifier = identifier) ;) (do_statement "do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);" do (compound_statement "{\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          }" { (expression_statement "(**(code **)puVar6)(iVar8,4);" (call_expression "(**(code **)puVar6)(iVar8,4)" (parenthesized_expression "(**(code **)puVar6)" ( (pointer_expression "**(code **)puVar6" * (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(iVar8,4)" ( identifier , number_literal ))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*puVar10 = extraout_v1;" (assignment_expression "*puVar10 = extraout_v1" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 4,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 4,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 4,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 4,4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 2) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 2) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 2)" * (cast_expression "(undefined8 *)(puVar10 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 8,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 8,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 8,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 8,4)" ( (binary_expression "iVar8 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 4) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 4) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 4)" * (cast_expression "(undefined8 *)(puVar10 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0xc,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0xc,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 0xc,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0xc,4)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 6) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 6) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 6)" * (cast_expression "(undefined8 *)(puVar10 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 6)" ( (binary_expression "puVar10 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x10,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x10,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x10,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x10,4)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 8) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 8) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 8)" * (cast_expression "(undefined8 *)(puVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x14,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x14,4)" identifier = (call_expression "(*pcVar11)(iVar8 + 0x14,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x14,4)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined8 *)(puVar10 + 10) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 10) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 10)" * (cast_expression "(undefined8 *)(puVar10 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 10)" ( (binary_expression "puVar10 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar11)(iVar8 + 0x18,4);" (call_expression "(*pcVar11)(iVar8 + 0x18,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar8 + 0x18,4)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar3 = iVar8 + 0x1c;" (assignment_expression "iVar3 = iVar8 + 0x1c" identifier = (binary_expression "iVar8 + 0x1c" identifier + number_literal)) ;) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" identifier = (pointer_expression "*(code **)puVar6" * (cast_expression "(code **)puVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar10[1] = extraout_v1_00;" (assignment_expression "puVar10[1] = extraout_v1_00" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = iVar8 + 0x20;" (assignment_expression "iVar8 = iVar8 + 0x20" identifier = (binary_expression "iVar8 + 0x20" identifier + number_literal)) ;) (expression_statement "uVar12 = (*pcVar11)(iVar3,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar3,4)" identifier = (call_expression "(*pcVar11)(iVar3,4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar3,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar4 = *(uint *)(param_1 + 0x4c);" (assignment_expression "uVar4 = *(uint *)(param_1 + 0x4c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(puVar10 + 0xc) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 0xc) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 0xc)" * (cast_expression "(undefined8 *)(puVar10 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xc)" ( (binary_expression "puVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar10 + 0xe;" (assignment_expression "puVar10 = puVar10 + 0xe" identifier = (binary_expression "puVar10 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 < uVar4)" ( (binary_expression "uVar7 < uVar4" identifier < identifier) )) ;) })) (labeled_statement "LAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);" statement_identifier : (expression_statement "(*(code *)PTR_free_000c3620)(iVar5);" (call_expression "(*(code *)PTR_free_000c3620)(iVar5)" (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 "(iVar5)" ( identifier ))) ;)) (expression_statement "*(undefined4 **)(param_1 + 100) = puVar1;" (assignment_expression "*(undefined4 **)(param_1 + 100) = puVar1" (pointer_expression "*(undefined4 **)(param_1 + 100)" * (cast_expression "(undefined4 **)(param_1 + 100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00029d20;" goto statement_identifier ;) })) }))) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,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 + 0x1178,5)" ( number_literal , (binary_expression "PTR_s_TADECL_000c3390 + 0x1178" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_error_000c3398)(uVar2);" (call_expression "(*(code *)PTR_error_000c3398)(uVar2)" (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 "(uVar2)" ( identifier ))) ;) (labeled_statement "LAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);" statement_identifier : (expression_statement "(*(code *)PTR_free_000c3620)(puVar1);" (call_expression "(*(code *)PTR_free_000c3620)(puVar1)" (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 "(puVar1)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) )))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (return_statement return 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (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 )))) ;) (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 )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression 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 IDENT = (binary_expression IDENT + LIT)) ;) (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 ( IDENT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (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 )))) ;) (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 )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 (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 = (binary_expression 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00029958(int param_1)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  undefined8 uVar12;\n  \n  puVar6 = PTR_DAT_000c3378;\n  iVar5 = 0x38;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }\n  if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }\n  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  iVar5 = *(int *)(param_1 + 0x4c);\n  uVar7 = *(uint *)(param_1 + 0x48);\n  if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar2);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_00029958(int param_1)" (identifier "FUN_00029958") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 extraout_v1;\n  undefined4 extraout_v1_00;\n  undefined4 extraout_v1_01;\n  undefined4 extraout_v1_02;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  undefined8 uVar12;\n  \n  puVar6 = PTR_DAT_000c3378;\n  iVar5 = 0x38;\n  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }\n  if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }\n  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }\n  iVar5 = *(int *)(param_1 + 0x4c);\n  uVar7 = *(uint *)(param_1 + 0x48);\n  if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);\n  (*(code *)PTR_error_000c3398)(uVar2);\nLAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);\n  return 0;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (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 "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (expression_statement "puVar6 = PTR_DAT_000c3378;" (assignment_expression "puVar6 = PTR_DAT_000c3378" (identifier "puVar6") (= "=") (identifier "PTR_DAT_000c3378")) (; ";")) (expression_statement "iVar5 = 0x38;" (assignment_expression "iVar5 = 0x38" (identifier "iVar5") (= "=") (number_literal "0x38")) (; ";")) (if_statement "if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {\n    iVar5 = 0x20;\n  }" (if "if") (parenthesized_expression "(*(int *)(PTR_DAT_000c3378 + 0x4648) != 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_000c3378 + 0x4648) != 0" (pointer_expression "*(int *)(PTR_DAT_000c3378 + 0x4648)" (* "*") (cast_expression "(int *)(PTR_DAT_000c3378 + 0x4648)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000c3378 + 0x4648)" (( "(") (binary_expression "PTR_DAT_000c3378 + 0x4648" (identifier "PTR_DAT_000c3378") (+ "+") (number_literal "0x4648")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = 0x20;\n  }" ({ "{") (expression_statement "iVar5 = 0x20;" (assignment_expression "iVar5 = 0x20" (identifier "iVar5") (= "=") (number_literal "0x20")) (; ";")) (} "}"))) (if_statement "if ((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5)))" (( "(") (binary_expression "(*(int *)(param_1 + 8) == 0) &&\n     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))" (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))" (( "(") (binary_expression "*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5)" (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (<= "<=") (call_expression "(uint)(*(int *)(param_1 + 0x4c) * iVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(param_1 + 0x4c) * iVar5)" (( "(") (binary_expression "*(int *)(param_1 + 0x4c) * iVar5" (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (* "*") (identifier "iVar5")) () ")")))) () ")"))) () ")")) (compound_statement "{\n    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;\nLAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);\n    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));\n    return 0;\n  }" ({ "{") (expression_statement "puVar6 = PTR_s_TADECL_000c3390 + 0x1110;" (assignment_expression "puVar6 = PTR_s_TADECL_000c3390 + 0x1110" (identifier "puVar6") (= "=") (binary_expression "PTR_s_TADECL_000c3390 + 0x1110" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "0x1110"))) (; ";")) (labeled_statement "LAB_00029d78:\n    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);" (statement_identifier "LAB_00029d78") (: ":") (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar6,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,puVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "puVar6") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "(*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));" (call_expression "(*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c))" (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 "(uVar2,*(undefined4 *)(param_1 + 0x4c))" (( "(") (identifier "uVar2") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);" (assignment_expression "puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38)" (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 "(*(int *)(param_1 + 0x4c),0x38)" (( "(") (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (, ",") (number_literal "0x38") () ")"))))) (; ";")) (if_statement "if (puVar1 == (undefined4 *)0x0) {\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }" (if "if") (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar1 == (undefined4 *)0x0" (identifier "puVar1") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;\n    goto LAB_00029d78;\n  }" ({ "{") (expression_statement "puVar6 = PTR_s_TADECL_000c3390 + 0x114c;" (assignment_expression "puVar6 = PTR_s_TADECL_000c3390 + 0x114c" (identifier "puVar6") (= "=") (binary_expression "PTR_s_TADECL_000c3390 + 0x114c" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "0x114c"))) (; ";")) (goto_statement "goto LAB_00029d78;" (goto "goto") (statement_identifier "LAB_00029d78") (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(uint *)(param_1 + 0x48);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x48)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_1 + 0x48)" (* "*") (cast_expression "(uint *)(param_1 + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar6 + 0x4648) == 0) {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }\n  else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar6 + 0x4648) == 0)" (( "(") (binary_expression "*(int *)(puVar6 + 0x4648) == 0" (pointer_expression "*(int *)(puVar6 + 0x4648)" (* "*") (cast_expression "(int *)(puVar6 + 0x4648)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0x4648)" (( "(") (binary_expression "puVar6 + 0x4648" (identifier "puVar6") (+ "+") (number_literal "0x4648")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }\n  }" ({ "{") (if_statement "if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;" (if "if") (parenthesized_expression "((uVar7 == 0) || (iVar5 == 0))" (( "(") (binary_expression "(uVar7 == 0) || (iVar5 == 0)" (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00029d20;" (goto "goto") (statement_identifier "LAB_00029d20") (; ";"))) (if_statement "if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }" (if "if") (parenthesized_expression "(0x37 < uVar7)" (( "(") (binary_expression "0x37 < uVar7" (number_literal "0x37") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n      if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }\n      goto LAB_00029d20;\n    }" ({ "{") (if_statement "if (uVar7 != 0x38) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" (if "if") (parenthesized_expression "(uVar7 != 0x38)" (( "(") (binary_expression "uVar7 != 0x38" (identifier "uVar7") (!= "!=") (number_literal "0x38")) () ")")) (compound_statement "{\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,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 + 0x11d0,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_TADECL_000c3390 + 0x11d0" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "0x11d0")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar2);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar2)" (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 "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 0x2c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,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 + 0x122c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_TADECL_000c3390 + 0x122c" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "0x122c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);" (assignment_expression "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" (identifier "iVar5") (= "=") (call_expression "FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" (identifier "FUN_0002253c") (argument_list "(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" (( "(") (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 "uVar9") (, ",") (number_literal "0") (, ",") (identifier "uVar7") (, ",") (number_literal "0") (, ",") (identifier "iVar5") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "puVar6 = PTR_byte_get_000c3394;" (assignment_expression "puVar6 = PTR_byte_get_000c3394" (identifier "puVar6") (= "=") (identifier "PTR_byte_get_000c3394")) (; ";")) (if_statement "if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\n        goto LAB_00029b48;\n      }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = iVar5;" (assignment_expression "iVar8 = iVar5" (identifier "iVar8") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "puVar10 = puVar1;" (assignment_expression "puVar10 = puVar1" (identifier "puVar10") (= "=") (identifier "puVar1")) (; ";")) (do_statement "do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);" (do "do") (compound_statement "{\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1_01;\n            uVar7 = uVar7 + 1;\n            (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_02;\n            uVar12 = (*pcVar11)(iVar8 + 8,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x18,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x20,8);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x28,8);\n            iVar3 = iVar8 + 0x30;\n            pcVar11 = *(code **)puVar6;\n            iVar8 = iVar8 + 0x38;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            uVar12 = (*pcVar11)(iVar3,8);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          }" ({ "{") (expression_statement "(**(code **)puVar6)(iVar8,4);" (call_expression "(**(code **)puVar6)(iVar8,4)" (parenthesized_expression "(**(code **)puVar6)" (( "(") (pointer_expression "**(code **)puVar6" (* "*") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) () ")")) (argument_list "(iVar8,4)" (( "(") (identifier "iVar8") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*puVar10 = extraout_v1_01;" (assignment_expression "*puVar10 = extraout_v1_01" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "extraout_v1_01")) (; ";")) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*pcVar11)(iVar8 + 4,4);" (call_expression "(*pcVar11)(iVar8 + 4,4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 4,4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "puVar10[1] = extraout_v1_02;" (assignment_expression "puVar10[1] = extraout_v1_02" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "extraout_v1_02")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 8,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 8,8)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 8,8)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 8,8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 2) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 2) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 2)" (( "(") (binary_expression "puVar10 + 2" (identifier "puVar10") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x10,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x10,8)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 0x10,8)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 0x10,8)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 4) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 4) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x18,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x18,8)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 0x18,8)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 0x18,8)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 6) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 6) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 6)" (( "(") (binary_expression "puVar10 + 6" (identifier "puVar10") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x20,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x20,8)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 0x20,8)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 0x20,8)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 8) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 8) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 8)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x28,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x28,8)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 0x28,8)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 0x28,8)" (( "(") (binary_expression "iVar8 + 0x28" (identifier "iVar8") (+ "+") (number_literal "0x28")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "iVar3 = iVar8 + 0x30;" (assignment_expression "iVar3 = iVar8 + 0x30" (identifier "iVar3") (= "=") (binary_expression "iVar8 + 0x30" (identifier "iVar8") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "iVar8 = iVar8 + 0x38;" (assignment_expression "iVar8 = iVar8 + 0x38" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 0x38" (identifier "iVar8") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 10) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 10) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 10)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 10)" (( "(") (binary_expression "puVar10 + 10" (identifier "puVar10") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar3,8);" (assignment_expression "uVar12 = (*pcVar11)(iVar3,8)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar3,8)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar3,8)" (( "(") (identifier "iVar3") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "uVar4 = *(uint *)(param_1 + 0x4c);" (assignment_expression "uVar4 = *(uint *)(param_1 + 0x4c)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(param_1 + 0x4c)" (* "*") (cast_expression "(uint *)(param_1 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 0xc) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 0xc) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 0xc)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xc)" (( "(") (binary_expression "puVar10 + 0xc" (identifier "puVar10") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar10 = puVar10 + 0xe;" (assignment_expression "puVar10 = puVar10 + 0xe" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 0xe" (identifier "puVar10") (+ "+") (number_literal "0xe"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar7 < uVar4)" (( "(") (binary_expression "uVar7 < uVar4" (identifier "uVar7") (< "<") (identifier "uVar4")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_00029b48;" (goto "goto") (statement_identifier "LAB_00029b48") (; ";")) (} "}"))) (goto_statement "goto LAB_00029d20;" (goto "goto") (statement_identifier "LAB_00029d20") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" (else "else") (compound_statement "{\n    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }\n  }" ({ "{") (if_statement "if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;" (if "if") (parenthesized_expression "((uVar7 == 0) || (iVar5 == 0))" (( "(") (binary_expression "(uVar7 == 0) || (iVar5 == 0)" (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00029d20;" (goto "goto") (statement_identifier "LAB_00029d20") (; ";"))) (if_statement "if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }" (if "if") (parenthesized_expression "(0x1f < uVar7)" (( "(") (binary_expression "0x1f < uVar7" (number_literal "0x1f") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n      if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }\n      uVar9 = *(undefined4 *)(param_1 + 0x2c);\n      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);\n      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);\n      puVar6 = PTR_byte_get_000c3394;\n      if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }\n      goto LAB_00029d20;\n    }" ({ "{") (if_statement "if (uVar7 != 0x20) {\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" (if "if") (parenthesized_expression "(uVar7 != 0x20)" (( "(") (binary_expression "uVar7 != 0x20" (identifier "uVar7") (!= "!=") (number_literal "0x20")) () ")")) (compound_statement "{\n        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);\n        (*(code *)PTR_warn_000c33a4)(uVar2);\n      }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,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 + 0x11d0,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_TADECL_000c3390 + 0x11d0" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "0x11d0")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_warn_000c33a4)(uVar2);" (call_expression "(*(code *)PTR_warn_000c33a4)(uVar2)" (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 "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 0x2c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,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 + 0x122c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_TADECL_000c3390 + 0x122c" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "0x122c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);" (assignment_expression "iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" (identifier "iVar5") (= "=") (call_expression "FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" (identifier "FUN_0002253c") (argument_list "(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2)" (( "(") (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 "uVar9") (, ",") (number_literal "0") (, ",") (identifier "uVar7") (, ",") (number_literal "0") (, ",") (identifier "iVar5") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "puVar6 = PTR_byte_get_000c3394;" (assignment_expression "puVar6 = PTR_byte_get_000c3394" (identifier "puVar6") (= "=") (identifier "PTR_byte_get_000c3394")) (; ";")) (if_statement "if (iVar5 != 0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }\nLAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);\n        *(undefined4 **)(param_1 + 100) = puVar1;\n        return 1;\n      }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar7 = 0;\n          iVar8 = iVar5;\n          puVar10 = puVar1;\n          do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);\n        }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = iVar5;" (assignment_expression "iVar8 = iVar5" (identifier "iVar8") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "puVar10 = puVar1;" (assignment_expression "puVar10 = puVar1" (identifier "puVar10") (= "=") (identifier "puVar1")) (; ";")) (do_statement "do {\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          } while (uVar7 < uVar4);" (do "do") (compound_statement "{\n            (**(code **)puVar6)(iVar8,4);\n            pcVar11 = *(code **)puVar6;\n            *puVar10 = extraout_v1;\n            uVar7 = uVar7 + 1;\n            uVar12 = (*pcVar11)(iVar8 + 4,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 2) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 8,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 4) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0xc,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 6) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x10,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 8) = uVar12;\n            uVar12 = (*pcVar11)(iVar8 + 0x14,4);\n            pcVar11 = *(code **)puVar6;\n            *(undefined8 *)(puVar10 + 10) = uVar12;\n            (*pcVar11)(iVar8 + 0x18,4);\n            iVar3 = iVar8 + 0x1c;\n            pcVar11 = *(code **)puVar6;\n            puVar10[1] = extraout_v1_00;\n            iVar8 = iVar8 + 0x20;\n            uVar12 = (*pcVar11)(iVar3,4);\n            uVar4 = *(uint *)(param_1 + 0x4c);\n            *(undefined8 *)(puVar10 + 0xc) = uVar12;\n            puVar10 = puVar10 + 0xe;\n          }" ({ "{") (expression_statement "(**(code **)puVar6)(iVar8,4);" (call_expression "(**(code **)puVar6)(iVar8,4)" (parenthesized_expression "(**(code **)puVar6)" (( "(") (pointer_expression "**(code **)puVar6" (* "*") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) () ")")) (argument_list "(iVar8,4)" (( "(") (identifier "iVar8") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*puVar10 = extraout_v1;" (assignment_expression "*puVar10 = extraout_v1" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "extraout_v1")) (; ";")) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 4,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 4,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 4,4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 4,4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 2) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 2) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 2)" (( "(") (binary_expression "puVar10 + 2" (identifier "puVar10") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 8,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 8,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 8,4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 8,4)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 4) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 4) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0xc,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0xc,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 0xc,4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 0xc,4)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 6) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 6) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 6)" (( "(") (binary_expression "puVar10 + 6" (identifier "puVar10") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x10,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x10,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 0x10,4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 0x10,4)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 8) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 8) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 8)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 8)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar8 + 0x14,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar8 + 0x14,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar8 + 0x14,4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 0x14,4)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 10) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 10) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 10)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 10)" (( "(") (binary_expression "puVar10 + 10" (identifier "puVar10") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "(*pcVar11)(iVar8 + 0x18,4);" (call_expression "(*pcVar11)(iVar8 + 0x18,4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar8 + 0x18,4)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "iVar3 = iVar8 + 0x1c;" (assignment_expression "iVar3 = iVar8 + 0x1c" (identifier "iVar3") (= "=") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "pcVar11 = *(code **)puVar6;" (assignment_expression "pcVar11 = *(code **)puVar6" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)puVar6" (* "*") (cast_expression "(code **)puVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "puVar10[1] = extraout_v1_00;" (assignment_expression "puVar10[1] = extraout_v1_00" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "extraout_v1_00")) (; ";")) (expression_statement "iVar8 = iVar8 + 0x20;" (assignment_expression "iVar8 = iVar8 + 0x20" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "uVar12 = (*pcVar11)(iVar3,4);" (assignment_expression "uVar12 = (*pcVar11)(iVar3,4)" (identifier "uVar12") (= "=") (call_expression "(*pcVar11)(iVar3,4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar3,4)" (( "(") (identifier "iVar3") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar4 = *(uint *)(param_1 + 0x4c);" (assignment_expression "uVar4 = *(uint *)(param_1 + 0x4c)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(param_1 + 0x4c)" (* "*") (cast_expression "(uint *)(param_1 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(puVar10 + 0xc) = uVar12;" (assignment_expression "*(undefined8 *)(puVar10 + 0xc) = uVar12" (pointer_expression "*(undefined8 *)(puVar10 + 0xc)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0xc)" (( "(") (binary_expression "puVar10 + 0xc" (identifier "puVar10") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar10 = puVar10 + 0xe;" (assignment_expression "puVar10 = puVar10 + 0xe" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 0xe" (identifier "puVar10") (+ "+") (number_literal "0xe"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar7 < uVar4)" (( "(") (binary_expression "uVar7 < uVar4" (identifier "uVar7") (< "<") (identifier "uVar4")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00029b48:\n        (*(code *)PTR_free_000c3620)(iVar5);" (statement_identifier "LAB_00029b48") (: ":") (expression_statement "(*(code *)PTR_free_000c3620)(iVar5);" (call_expression "(*(code *)PTR_free_000c3620)(iVar5)" (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 "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";"))) (expression_statement "*(undefined4 **)(param_1 + 100) = puVar1;" (assignment_expression "*(undefined4 **)(param_1 + 100) = puVar1" (pointer_expression "*(undefined4 **)(param_1 + 100)" (* "*") (cast_expression "(undefined4 **)(param_1 + 100)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00029d20;" (goto "goto") (statement_identifier "LAB_00029d20") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);" (assignment_expression "uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,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 + 0x1178,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_TADECL_000c3390 + 0x1178" (identifier "PTR_s_TADECL_000c3390") (+ "+") (number_literal "0x1178")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_error_000c3398)(uVar2);" (call_expression "(*(code *)PTR_error_000c3398)(uVar2)" (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 "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (labeled_statement "LAB_00029d20:\n  (*(code *)PTR_free_000c3620)(puVar1);" (statement_identifier "LAB_00029d20") (: ":") (expression_statement "(*(code *)PTR_free_000c3620)(puVar1);" (call_expression "(*(code *)PTR_free_000c3620)(puVar1)" (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 "(puVar1)" (( "(") (identifier "puVar1") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

type_1 function_1(type_2 *filedata)

{
  type_3 *var_5;
  type_2 *pFVar2;
  void *var_9;
  type_4 uVar4;
  type_5 extraout_v1;
  type_5 extraout_v1_00;
  type_5 extraout_v1_01;
  type_5 extraout_v1_02;
  type_6 var_2;
  int var_3;
  type_7 *var_6;
  type_6 var_7;
  void *pvVar9;
  char *pcVar10;
  type_3 *var_10;
  type_8 *pcVar12;
  type_9 bVar13;
  
  var_6 = var_1;
  var_3 = 0x38;
  var_2 = (filedata->file_header).e_phnum;
  if (*(int *)(var_1 + 0x4648) != 0) {
    var_3 = 0x20;
  }
  if ((*(int *)&filedata->file_size == 0) && ((type_6)filedata->file_size <= var_2 * var_3)) {
    var_6 = var_4 + 0x1110;
LAB_00029d78:
    uVar4 = (*(type_8 *)PTR_dcgettext_000c360c)(0,var_6,5);
    (*(type_8 *)PTR_error_000c3398)(uVar4,(filedata->file_header).e_phnum);
    return 0;
  }
  var_5 = (type_3 *)(*(type_8 *)PTR_cmalloc_000c33b8)(var_2,0x38);
  if (var_5 == (type_3 *)0x0) {
    var_6 = var_4 + 0x114c;
    goto LAB_00029d78;
  }
  var_7 = (filedata->file_header).e_phnum;
  var_2 = (filedata->file_header).e_phentsize;
  if (*(int *)(var_6 + 0x4648) == 0) {
    if ((var_2 == 0) || (var_7 == 0)) goto LAB_00029d20;
    if (0x37 < var_2) {
      if (var_2 != 0x38) {
        uVar4 = (*(type_8 *)PTR_dcgettext_000c360c)(0,var_4 + 0x11d0,5);
        (*(type_8 *)PTR_warn_000c33a4)(uVar4);
      }
      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);
      pFVar2 = (type_2 *)(*(type_8 *)PTR_dcgettext_000c360c)(0,var_4 + 0x122c,5);
      var_9 = var_8((void *)0x0,(type_2 *)&filedata->handle,(type_5)&filedata->file_size,
                        (type_10)var_2,(type_10)var_7,pcVar10,pFVar2);
      var_6 = PTR_byte_get_000c3394;
      if (var_9 != (void *)0x0) {
        if ((filedata->file_header).e_phnum != 0) {
          var_2 = 0;
          pvVar9 = var_9;
          var_10 = var_5;
          do {
            (**(type_8 **)var_6)(pvVar9,4);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_type = extraout_v1_01;
            var_2 = var_2 + 1;
            (*pcVar12)((int)pvVar9 + 4,4);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_flags = extraout_v1_02;
            bVar13 = (*pcVar12)((int)pvVar9 + 8,8);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_offset = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,8);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_vaddr = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x18,8);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_paddr = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x20,8);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_filesz = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x28,8);
            var_3 = (int)pvVar9 + 0x30;
            pcVar12 = *(type_8 **)var_6;
            pvVar9 = (void *)((int)pvVar9 + 0x38);
            var_10->p_memsz = bVar13;
            bVar13 = (*pcVar12)(var_3,8);
            var_7 = (filedata->file_header).e_phnum;
            var_10->p_align = bVar13;
            var_10 = var_10 + 1;
          } while (var_2 < var_7);
        }
        goto LAB_00029b48;
      }
      goto LAB_00029d20;
    }
  }
  else {
    if ((var_2 == 0) || (var_7 == 0)) goto LAB_00029d20;
    if (0x1f < var_2) {
      if (var_2 != 0x20) {
        uVar4 = (*(type_8 *)PTR_dcgettext_000c360c)(0,var_4 + 0x11d0,5);
        (*(type_8 *)PTR_warn_000c33a4)(uVar4);
      }
      pcVar10 = *(char **)((int)&(filedata->file_header).e_phoff + 4);
      pFVar2 = (type_2 *)(*(type_8 *)PTR_dcgettext_000c360c)(0,var_4 + 0x122c,5);
      var_9 = var_8((void *)0x0,(type_2 *)&filedata->handle,(type_5)&filedata->file_size,
                        (type_10)var_2,(type_10)var_7,pcVar10,pFVar2);
      var_6 = PTR_byte_get_000c3394;
      if (var_9 != (void *)0x0) {
        if ((filedata->file_header).e_phnum != 0) {
          var_2 = 0;
          pvVar9 = var_9;
          var_10 = var_5;
          do {
            (**(type_8 **)var_6)(pvVar9,4);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_type = extraout_v1;
            var_2 = var_2 + 1;
            bVar13 = (*pcVar12)((int)pvVar9 + 4,4);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_offset = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 8,4);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_vaddr = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0xc,4);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_paddr = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x10,4);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_filesz = bVar13;
            bVar13 = (*pcVar12)((int)pvVar9 + 0x14,4);
            pcVar12 = *(type_8 **)var_6;
            var_10->p_memsz = bVar13;
            (*pcVar12)((int)pvVar9 + 0x18,4);
            var_3 = (int)pvVar9 + 0x1c;
            pcVar12 = *(type_8 **)var_6;
            var_10->p_flags = extraout_v1_00;
            pvVar9 = (void *)((int)pvVar9 + 0x20);
            bVar13 = (*pcVar12)(var_3,4);
            var_7 = (filedata->file_header).e_phnum;
            var_10->p_align = bVar13;
            var_10 = var_10 + 1;
          } while (var_2 < var_7);
        }
LAB_00029b48:
        (*(type_8 *)PTR_free_000c3620)(var_9);
        filedata->program_headers = var_5;
        return 1;
      }
      goto LAB_00029d20;
    }
  }
  uVar4 = (*(type_8 *)PTR_dcgettext_000c360c)(0,var_4 + 0x1178,5);
  (*(type_8 *)PTR_error_000c3398)(uVar4);
LAB_00029d20:
  (*(type_8 *)PTR_free_000c3620)(var_5);
  return 0;
}


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

undefined4 MASKED(int param_1)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  undefined4 extraout_v1;
  undefined4 extraout_v1_00;
  undefined4 extraout_v1_01;
  undefined4 extraout_v1_02;
  int iVar3;
  uint uVar4;
  int iVar5;
  undefined *puVar6;
  uint uVar7;
  int iVar8;
  undefined4 uVar9;
  undefined4 *puVar10;
  code *pcVar11;
  undefined8 uVar12;
  
  puVar6 = PTR_DAT_000c3378;
  iVar5 = 0x38;
  if (*(int *)(PTR_DAT_000c3378 + 0x4648) != 0) {
    iVar5 = 0x20;
  }
  if ((*(int *)(param_1 + 8) == 0) &&
     (*(uint *)(param_1 + 0xc) <= (uint)(*(int *)(param_1 + 0x4c) * iVar5))) {
    puVar6 = PTR_s_TADECL_000c3390 + 0x1110;
LAB_00029d78:
    uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,puVar6,5);
    (*(code *)PTR_error_000c3398)(uVar2,*(undefined4 *)(param_1 + 0x4c));
    return 0;
  }
  puVar1 = (undefined4 *)(*(code *)PTR_cmalloc_000c33b8)(*(int *)(param_1 + 0x4c),0x38);
  if (puVar1 == (undefined4 *)0x0) {
    puVar6 = PTR_s_TADECL_000c3390 + 0x114c;
    goto LAB_00029d78;
  }
  iVar5 = *(int *)(param_1 + 0x4c);
  uVar7 = *(uint *)(param_1 + 0x48);
  if (*(int *)(puVar6 + 0x4648) == 0) {
    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;
    if (0x37 < uVar7) {
      if (uVar7 != 0x38) {
        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);
        (*(code *)PTR_warn_000c33a4)(uVar2);
      }
      uVar9 = *(undefined4 *)(param_1 + 0x2c);
      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);
      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);
      puVar6 = PTR_byte_get_000c3394;
      if (iVar5 != 0) {
        if (*(int *)(param_1 + 0x4c) != 0) {
          uVar7 = 0;
          iVar8 = iVar5;
          puVar10 = puVar1;
          do {
            (**(code **)puVar6)(iVar8,4);
            pcVar11 = *(code **)puVar6;
            *puVar10 = extraout_v1_01;
            uVar7 = uVar7 + 1;
            (*pcVar11)(iVar8 + 4,4);
            pcVar11 = *(code **)puVar6;
            puVar10[1] = extraout_v1_02;
            uVar12 = (*pcVar11)(iVar8 + 8,8);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 2) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x10,8);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 4) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x18,8);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 6) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x20,8);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 8) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x28,8);
            iVar3 = iVar8 + 0x30;
            pcVar11 = *(code **)puVar6;
            iVar8 = iVar8 + 0x38;
            *(undefined8 *)(puVar10 + 10) = uVar12;
            uVar12 = (*pcVar11)(iVar3,8);
            uVar4 = *(uint *)(param_1 + 0x4c);
            *(undefined8 *)(puVar10 + 0xc) = uVar12;
            puVar10 = puVar10 + 0xe;
          } while (uVar7 < uVar4);
        }
        goto LAB_00029b48;
      }
      goto LAB_00029d20;
    }
  }
  else {
    if ((uVar7 == 0) || (iVar5 == 0)) goto LAB_00029d20;
    if (0x1f < uVar7) {
      if (uVar7 != 0x20) {
        uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x11d0,5);
        (*(code *)PTR_warn_000c33a4)(uVar2);
      }
      uVar9 = *(undefined4 *)(param_1 + 0x2c);
      uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x122c,5);
      iVar5 = FUN_0002253c(0,param_1 + 4,param_1 + 8,uVar9,0,uVar7,0,iVar5,uVar2);
      puVar6 = PTR_byte_get_000c3394;
      if (iVar5 != 0) {
        if (*(int *)(param_1 + 0x4c) != 0) {
          uVar7 = 0;
          iVar8 = iVar5;
          puVar10 = puVar1;
          do {
            (**(code **)puVar6)(iVar8,4);
            pcVar11 = *(code **)puVar6;
            *puVar10 = extraout_v1;
            uVar7 = uVar7 + 1;
            uVar12 = (*pcVar11)(iVar8 + 4,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 2) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 8,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 4) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0xc,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 6) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x10,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 8) = uVar12;
            uVar12 = (*pcVar11)(iVar8 + 0x14,4);
            pcVar11 = *(code **)puVar6;
            *(undefined8 *)(puVar10 + 10) = uVar12;
            (*pcVar11)(iVar8 + 0x18,4);
            iVar3 = iVar8 + 0x1c;
            pcVar11 = *(code **)puVar6;
            puVar10[1] = extraout_v1_00;
            iVar8 = iVar8 + 0x20;
            uVar12 = (*pcVar11)(iVar3,4);
            uVar4 = *(uint *)(param_1 + 0x4c);
            *(undefined8 *)(puVar10 + 0xc) = uVar12;
            puVar10 = puVar10 + 0xe;
          } while (uVar7 < uVar4);
        }
LAB_00029b48:
        (*(code *)PTR_free_000c3620)(iVar5);
        *(undefined4 **)(param_1 + 100) = puVar1;
        return 1;
      }
      goto LAB_00029d20;
    }
  }
  uVar2 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_s_TADECL_000c3390 + 0x1178,5);
  (*(code *)PTR_error_000c3398)(uVar2);
LAB_00029d20:
  (*(code *)PTR_free_000c3620)(puVar1);
  return 0;
}

