
int display_debug_abbrev(dwarf_section *section,void *file)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  uchar *end;
  code *pcVar4;
  code *pcVar5;
  uchar *puVar6;
  undefined4 uVar7;
  char *pcVar8;
  char *pcVar9;
  undefined4 uVar10;
  dwarf_section *in_a2;
  undefined4 uVar11;
  undefined *puVar12;
  undefined4 *puVar13;
  undefined *puVar14;
  ulong *puVar15;
  uchar *local_40;
  
  puVar1 = PTR_DAT_000c3378;
  local_40 = section->start;
  end = local_40 + (int)section->size;
  introduce((dwarf_section *)&section->name,(bfd_boolean)&section->filename,in_a2);
  pcVar4 = (code *)(PTR_LAB_000c3448 + 0x66c4);
  pcVar5 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);
  do {
    (*pcVar4)();
    if (*(int *)(puVar1 + 0x7f20) == 0) {
      puVar6 = process_abbrev_section(local_40,end);
      if (*(int *)(puVar1 + 0x7f20) != 0) {
        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);
        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);
        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);
        local_40 = puVar6;
        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;
      }
    }
    else {
      uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);
      (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);
      puVar13 = *(undefined4 **)(puVar1 + 0x7f20);
      if (puVar13 == (undefined4 *)0x0) break;
      local_40 = (uchar *)0x0;
LAB_0005b8c4:
      puVar2 = PTR_DAT_000c338c;
      puVar12 = PTR_DAT_000c338c + 0x64d0;
      do {
        uVar11 = *puVar13;
        uVar10 = (*pcVar5)(puVar13[1]);
        if (puVar13[2] == 0) {
          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);
        }
        else {
          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);
        }
        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);
        puVar3 = PTR_stdout_000c3588;
        puVar15 = (ulong *)puVar13[3];
        if (puVar15 != (ulong *)0x0) {
          puVar14 = PTR_DAT_000c338c + 0x64e0;
          do {
            while( true ) {
              pcVar8 = get_AT_name(*puVar15);
              pcVar9 = get_FORM_name(puVar15[1]);
              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);
              if (puVar15[1] != 0x21) break;
              (*(code *)PTR_printf_000c3634)(puVar14);
              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);
              puVar15 = (ulong *)puVar15[4];
              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;
            }
            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);
            puVar15 = (ulong *)puVar15[4];
          } while (puVar15 != (ulong *)0x0);
        }
LAB_0005b9ec:
        puVar13 = (undefined4 *)puVar13[5];
        puVar6 = local_40;
      } while (puVar13 != (undefined4 *)0x0);
    }
    local_40 = puVar6;
  } while (local_40 != (uchar *)0x0);
  (*(code *)PTR_putchar_000c3594)(10);
  return 1;
}



undefined4 FUN_0005b744(int param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  code *pcVar5;
  code *pcVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined *puVar11;
  undefined4 *puVar12;
  undefined *puVar13;
  undefined4 *puVar14;
  int local_40;
  
  puVar1 = PTR_DAT_000c3378;
  local_40 = *(int *)(param_1 + 0x10);
  iVar4 = local_40 + *(int *)(param_1 + 0x24);
  FUN_00059b70(param_1 + 8,param_1 + 0xc);
  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);
  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);
  do {
    (*pcVar5)();
    if (*(int *)(puVar1 + 0x7f20) == 0) {
      iVar7 = FUN_0005b334(local_40,iVar4);
      if (*(int *)(puVar1 + 0x7f20) != 0) {
        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);
        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));
        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);
        local_40 = iVar7;
        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;
      }
    }
    else {
      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);
      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));
      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);
      if (puVar12 == (undefined4 *)0x0) break;
      local_40 = 0;
LAB_0005b8c4:
      puVar2 = PTR_UINT_000c338c;
      puVar11 = PTR_UINT_000c338c + 0x64d0;
      do {
        uVar10 = *puVar12;
        uVar9 = (*pcVar6)(puVar12[1]);
        if (puVar12[2] == 0) {
          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);
        }
        else {
          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);
        }
        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);
        puVar3 = PTR_stdout_000c3588;
        puVar14 = (undefined4 *)puVar12[3];
        if (puVar14 != (undefined4 *)0x0) {
          puVar13 = PTR_UINT_000c338c + 0x64e0;
          do {
            while( true ) {
              uVar9 = FUN_000590e0(*puVar14);
              uVar10 = FUN_000591b0(puVar14[1]);
              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);
              if (puVar14[1] != 0x21) break;
              (*(code *)PTR_printf_000c3634)(puVar13);
              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);
              puVar14 = (undefined4 *)puVar14[4];
              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;
            }
            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);
            puVar14 = (undefined4 *)puVar14[4];
          } while (puVar14 != (undefined4 *)0x0);
        }
LAB_0005b9ec:
        puVar12 = (undefined4 *)puVar12[5];
        iVar7 = local_40;
      } while (puVar12 != (undefined4 *)0x0);
    }
    local_40 = iVar7;
  } while (local_40 != 0);
  (*(code *)PTR_putchar_000c3594)(10);
  return 1;
}


lui gp,0x7
addiu gp,gp,-0x3f4
addu gp,gp,t9
addiu sp,sp,-0x60
lw v0,-0x7fd8(gp)
lw v1,0x10(a0)
addiu a1,a0,0xc
lw t9,-0x7e9c(gp)
sw v0,0x2c(sp)
or v0,a0,zero
sw a0,0x60(sp)
addiu a0,a0,0x8
lw v0,0x24(v0)
addiu t9,t9,-0x6490
sw gp,0x10(sp)
sw s4,0x48(sp)
addu v0,v1,v0
sw s3,0x44(sp)
sw ra,0x5c(sp)
sw v0,0x34(sp)
sw s8,0x58(sp)
sw s7,0x54(sp)
sw s6,0x50(sp)
sw s5,0x4c(sp)
sw s2,0x40(sp)
sw s1,0x3c(sp)
sw s0,0x38(sp)
bal 0x00059b70
_sw v1,0x20(sp)
lw gp,0x10(sp)
lw v0,-0x7f08(gp)
lw s4,-0x7e9c(gp)
lw s3,-0x7e9c(gp)
addiu v0,v0,0x66c4
addiu s4,s4,-0x6f20
sw v0,0x30(sp)
addiu s3,s3,-0x6e50
lw v0,-0x7e9c(gp)
addiu v0,v0,-0x6fe8
sw v0,0x1c(sp)
lw t9,0x30(sp)
jalr t9
_nop
lw s1,0x2c(sp)
lw v0,0x7f20(s1)
bne v0,zero,0x0005b878
_lw gp,0x10(sp)
lw t9,-0x7e9c(gp)
lw s2,0x20(sp)
lw a1,0x34(sp)
addiu t9,t9,-0x4ccc
bal 0x0005b334
_or a0,s2,zero
lw v1,0x7f20(s1)
or s0,v0,zero
bne v1,zero,0x0005ba18
_lw gp,0x10(sp)
sw v0,0x20(sp)
lw v0,0x20(sp)
bne v0,zero,0x0005b7e8
_lw t9,0x30(sp)
lw t9,-0x7dbc(gp)
jalr t9
_li a0,0xa
li v0,0x1
lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
lw a1,-0x7fc4(gp)
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x6484
lw v1,0x60(sp)
or a0,v0,zero
lw gp,0x10(sp)
lw v0,0x20(sp)
lw a1,0x10(v1)
lw t9,-0x7d1c(gp)
jalr t9
_subu a1,v0,a1
lw v0,0x2c(sp)
lw s5,0x7f20(v0)
beq s5,zero,0x0005b838
_lw gp,0x10(sp)
sw zero,0x20(sp)
lw v0,-0x7fc4(gp)
lw s2,-0x7fc4(gp)
sw v0,0x18(sp)
lw v0,-0x7fc4(gp)
addiu s2,s2,0x64d0
sw v0,0x24(sp)
lw v0,-0x7fc4(gp)
sw v0,0x28(sp)
lw t9,0x1c(sp)
lw a0,0x4(s5)
jalr t9
_lw s0,0x0(s5)
li a2,0x5
lw gp,0x10(sp)
or s1,v0,zero
lw v1,0x8(s5)
beq v1,zero,0x0005ba00
_lw t9,-0x7d44(gp)
lw v0,0x28(sp)
or a0,zero,zero
jalr t9
_addiu a1,v0,0x649c
lw gp,0x10(sp)
lw v1,0x18(sp)
or a3,v0,zero
lw t9,-0x7d1c(gp)
or a2,s1,zero
or a1,s0,zero
jalr t9
_addiu a0,v1,0x64b8
lw s8,0xc(s5)
beq s8,zero,0x0005b9ec
_lw gp,0x10(sp)
lw s6,-0x7fc4(gp)
li s1,0x21
lw s0,-0x7dc8(gp)
b 0x0005b978
_addiu s6,s6,0x64e0
lw t9,-0x7de4(gp)
li a0,0xa
jalr t9
_lw a1,0x0(s0)
lw s8,0x10(s8)
beq s8,zero,0x0005b9ec
_lw gp,0x10(sp)
or t9,s4,zero
bal 0x000590e0
_lw a0,0x0(s8)
or t9,s3,zero
lw a0,0x4(s8)
bal 0x000591b0
_or s7,v0,zero
or a0,s2,zero
lw gp,0x10(sp)
or a1,s7,zero
lw t9,-0x7d1c(gp)
jalr t9
_or a2,v0,zero
lw v0,0x4(s8)
bne v0,s1,0x0005b95c
_lw gp,0x10(sp)
lw t9,-0x7d1c(gp)
or a0,s6,zero
lw a3,0xc(s8)
jalr t9
_lw a2,0x8(s8)
li a0,0xa
lw gp,0x10(sp)
lw t9,-0x7de4(gp)
jalr t9
_lw a1,0x0(s0)
lw s8,0x10(s8)
bne s8,zero,0x0005b978
_lw gp,0x10(sp)
lw s5,0x14(s5)
bne s5,zero,0x0005b8e8
_lw t9,0x1c(sp)
b 0x0005b830
_lw v0,0x20(sp)
lw v0,0x24(sp)
or a0,zero,zero
jalr t9
_addiu a1,v0,0x64ac
b 0x0005b920
_lw gp,0x10(sp)
lw a1,-0x7fc4(gp)
li a2,0x5
lw t9,-0x7d44(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x6484
lw v1,0x60(sp)
or a0,v0,zero
lw gp,0x10(sp)
lw a1,0x10(v1)
lw t9,-0x7d1c(gp)
jalr t9
_subu a1,s2,a1
lw s5,0x7f20(s1)
lw gp,0x10(sp)
bne s5,zero,0x0005b8c4
_sw s0,0x20(sp)
b 0x0005b830
_lw v0,0x20(sp)
(translation_unit "undefined4 FUN_0005b744(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  int local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = *(int *)(param_1 + 0x10);\n  iVar4 = local_40 + *(int *)(param_1 + 0x24);\n  FUN_00059b70(param_1 + 8,param_1 + 0xc);\n  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_0005b744(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  int local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = *(int *)(param_1 + 0x10);\n  iVar4 = local_40 + *(int *)(param_1 + 0x24);\n  FUN_00059b70(param_1 + 8,param_1 + 0xc);\n  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}" type_identifier (function_declarator "FUN_0005b744(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  int local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = *(int *)(param_1 + 0x10);\n  iVar4 = local_40 + *(int *)(param_1 + 0x24);\n  FUN_00059b70(param_1 + 8,param_1 + 0xc);\n  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (expression_statement "puVar1 = PTR_DAT_000c3378;" (assignment_expression "puVar1 = PTR_DAT_000c3378" identifier = identifier) ;) (expression_statement "local_40 = *(int *)(param_1 + 0x10);" (assignment_expression "local_40 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = local_40 + *(int *)(param_1 + 0x24);" (assignment_expression "iVar4 = local_40 + *(int *)(param_1 + 0x24)" identifier = (binary_expression "local_40 + *(int *)(param_1 + 0x24)" identifier + (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))))) ;) (expression_statement "FUN_00059b70(param_1 + 8,param_1 + 0xc);" (call_expression "FUN_00059b70(param_1 + 8,param_1 + 0xc)" identifier (argument_list "(param_1 + 8,param_1 + 0xc)" ( (binary_expression "param_1 + 8" identifier + number_literal) , (binary_expression "param_1 + 0xc" identifier + number_literal) ))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4)" identifier = (cast_expression "(code *)(PTR_LAB_000c3448 + 0x66c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000c3448 + 0x66c4)" ( (binary_expression "PTR_LAB_000c3448 + 0x66c4" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8)" identifier = (cast_expression "(code *)(PTR_LAB_000c34b4 + -0x6fe8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000c34b4 + -0x6fe8)" ( (binary_expression "PTR_LAB_000c34b4 + -0x6fe8" identifier + number_literal) )))) ;) (do_statement "do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);" do (compound_statement "{\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  }" { (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }" if (parenthesized_expression "(*(int *)(puVar1 + 0x7f20) == 0)" ( (binary_expression "*(int *)(puVar1 + 0x7f20) == 0" (pointer_expression "*(int *)(puVar1 + 0x7f20)" * (cast_expression "(int *)(puVar1 + 0x7f20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }" { (expression_statement "iVar7 = FUN_0005b334(local_40,iVar4);" (assignment_expression "iVar7 = FUN_0005b334(local_40,iVar4)" identifier = (call_expression "FUN_0005b334(local_40,iVar4)" identifier (argument_list "(local_40,iVar4)" ( identifier , identifier )))) ;) (if_statement "if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }" if (parenthesized_expression "(*(int *)(puVar1 + 0x7f20) != 0)" ( (binary_expression "*(int *)(puVar1 + 0x7f20) != 0" (pointer_expression "*(int *)(puVar1 + 0x7f20)" * (cast_expression "(int *)(puVar1 + 0x7f20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }" { (expression_statement "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);" (assignment_expression "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,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_UINT_000c338c + 0x6484,5)" ( number_literal , (binary_expression "PTR_UINT_000c338c + 0x6484" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));" (call_expression "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10))" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,local_40 - *(int *)(param_1 + 0x10))" ( identifier , (binary_expression "local_40 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ))) ;) (expression_statement "puVar12 = *(undefined4 **)(puVar1 + 0x7f20);" (assignment_expression "puVar12 = *(undefined4 **)(puVar1 + 0x7f20)" identifier = (pointer_expression "*(undefined4 **)(puVar1 + 0x7f20)" * (cast_expression "(undefined4 **)(puVar1 + 0x7f20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) ))))) ;) (expression_statement "local_40 = iVar7;" (assignment_expression "local_40 = iVar7" identifier = identifier) ;) (if_statement "if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005b8c4;" goto statement_identifier ;)) })) }) (else_clause "else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }" else (compound_statement "{\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }" { (expression_statement "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);" (assignment_expression "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,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_UINT_000c338c + 0x6484,5)" ( number_literal , (binary_expression "PTR_UINT_000c338c + 0x6484" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));" (call_expression "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10))" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,local_40 - *(int *)(param_1 + 0x10))" ( identifier , (binary_expression "local_40 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ))) ;) (expression_statement "puVar12 = *(undefined4 **)(puVar1 + 0x7f20);" (assignment_expression "puVar12 = *(undefined4 **)(puVar1 + 0x7f20)" identifier = (pointer_expression "*(undefined4 **)(puVar1 + 0x7f20)" * (cast_expression "(undefined4 **)(puVar1 + 0x7f20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) ))))) ;) (if_statement "if (puVar12 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;" statement_identifier : (expression_statement "puVar2 = PTR_UINT_000c338c;" (assignment_expression "puVar2 = PTR_UINT_000c338c" identifier = identifier) ;)) (expression_statement "puVar11 = PTR_UINT_000c338c + 0x64d0;" (assignment_expression "puVar11 = PTR_UINT_000c338c + 0x64d0" identifier = (binary_expression "PTR_UINT_000c338c + 0x64d0" identifier + number_literal)) ;) (do_statement "do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);" do (compound_statement "{\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      }" { (expression_statement "uVar10 = *puVar12;" (assignment_expression "uVar10 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar9 = (*pcVar6)(puVar12[1]);" (assignment_expression "uVar9 = (*pcVar6)(puVar12[1])" identifier = (call_expression "(*pcVar6)(puVar12[1])" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(puVar12[1])" ( (subscript_expression "puVar12[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" if (parenthesized_expression "(puVar12[2] == 0)" ( (binary_expression "puVar12[2] == 0" (subscript_expression "puVar12[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }" { (expression_statement "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);" (assignment_expression "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,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,puVar2 + 0x64ac,5)" ( number_literal , (binary_expression "puVar2 + 0x64ac" identifier + number_literal) , number_literal )))) ;) }) (else_clause "else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" else (compound_statement "{\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" { (expression_statement "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);" (assignment_expression "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c)" (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,puVar2 + 0x649c)" ( number_literal , (binary_expression "puVar2 + 0x649c" identifier + number_literal) )))) ;) }))) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x64b8,uVar10,uVar9,uVar8)" ( (binary_expression "puVar2 + 0x64b8" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "puVar3 = PTR_stdout_000c3588;" (assignment_expression "puVar3 = PTR_stdout_000c3588" identifier = identifier) ;) (expression_statement "puVar14 = (undefined4 *)puVar12[3];" (assignment_expression "puVar14 = (undefined4 *)puVar12[3]" identifier = (cast_expression "(undefined4 *)puVar12[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }" if (parenthesized_expression "(puVar14 != (undefined4 *)0x0)" ( (binary_expression "puVar14 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }" { (expression_statement "puVar13 = PTR_UINT_000c338c + 0x64e0;" (assignment_expression "puVar13 = PTR_UINT_000c338c + 0x64e0" identifier = (binary_expression "PTR_UINT_000c338c + 0x64e0" identifier + number_literal)) ;) (do_statement "do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);" do (compound_statement "{\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          }" { (while_statement "while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }" { (expression_statement "uVar9 = FUN_000590e0(*puVar14);" (assignment_expression "uVar9 = FUN_000590e0(*puVar14)" identifier = (call_expression "FUN_000590e0(*puVar14)" identifier (argument_list "(*puVar14)" ( (pointer_expression "*puVar14" * identifier) )))) ;) (expression_statement "uVar10 = FUN_000591b0(puVar14[1]);" (assignment_expression "uVar10 = FUN_000591b0(puVar14[1])" identifier = (call_expression "FUN_000591b0(puVar14[1])" identifier (argument_list "(puVar14[1])" ( (subscript_expression "puVar14[1]" identifier [ number_literal ]) )))) ;) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,uVar9,uVar10)" ( identifier , identifier , identifier ))) ;) (if_statement "if (puVar14[1] != 0x21) break;" if (parenthesized_expression "(puVar14[1] != 0x21)" ( (binary_expression "puVar14[1] != 0x21" (subscript_expression "puVar14[1]" identifier [ number_literal ]) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar13);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar13)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);" (call_expression "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3)" (parenthesized_expression "(*(code *)PTR_putc_000c356c)" ( (pointer_expression "*(code *)PTR_putc_000c356c" * (cast_expression "(code *)PTR_putc_000c356c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10,*(undefined4 *)puVar3)" ( number_literal , (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar14 = (undefined4 *)puVar14[4];" (assignment_expression "puVar14 = (undefined4 *)puVar14[4]" identifier = (cast_expression "(undefined4 *)puVar14[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[4]" identifier [ number_literal ]))) ;) (if_statement "if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;" if (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" ( (binary_expression "puVar14 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005b9ec;" goto statement_identifier ;)) })) (expression_statement "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);" (call_expression "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3)" (parenthesized_expression "(*(code *)PTR_putc_000c356c)" ( (pointer_expression "*(code *)PTR_putc_000c356c" * (cast_expression "(code *)PTR_putc_000c356c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10,*(undefined4 *)puVar3)" ( number_literal , (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar14 = (undefined4 *)puVar14[4];" (assignment_expression "puVar14 = (undefined4 *)puVar14[4]" identifier = (cast_expression "(undefined4 *)puVar14[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[4]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar14 != (undefined4 *)0x0)" ( (binary_expression "puVar14 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];" statement_identifier : (expression_statement "puVar12 = (undefined4 *)puVar12[5];" (assignment_expression "puVar12 = (undefined4 *)puVar12[5]" identifier = (cast_expression "(undefined4 *)puVar12[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[5]" identifier [ number_literal ]))) ;)) (expression_statement "iVar7 = local_40;" (assignment_expression "iVar7 = local_40" identifier = identifier) ;) }) while (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "local_40 = iVar7;" (assignment_expression "local_40 = iVar7" identifier = identifier) ;) }) while (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) ;) (expression_statement "(*(code *)PTR_putchar_000c3594)(10);" (call_expression "(*(code *)PTR_putchar_000c3594)(10)" (parenthesized_expression "(*(code *)PTR_putchar_000c3594)" ( (pointer_expression "*(code *)PTR_putchar_000c3594" * (cast_expression "(code *)PTR_putchar_000c3594" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "int display_debug_abbrev(dwarf_section *section,void *file)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uchar *end;\n  code *pcVar4;\n  code *pcVar5;\n  uchar *puVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  dwarf_section *in_a2;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  ulong *puVar15;\n  uchar *local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = section->start;\n  end = local_40 + (int)section->size;\n  introduce((dwarf_section *)&section->name,(bfd_boolean)&section->filename,in_a2);\n  pcVar4 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar5 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar4)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      puVar6 = process_abbrev_section(local_40,end);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = puVar6;\n        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n      puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar13 == (undefined4 *)0x0) break;\n      local_40 = (uchar *)0x0;\nLAB_0005b8c4:\n      puVar2 = PTR_DAT_000c338c;\n      puVar12 = PTR_DAT_000c338c + 0x64d0;\n      do {\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    local_40 = puVar6;\n  } while (local_40 != (uchar *)0x0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}\n\n" (function_definition "int display_debug_abbrev(dwarf_section *section,void *file)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uchar *end;\n  code *pcVar4;\n  code *pcVar5;\n  uchar *puVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  dwarf_section *in_a2;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  ulong *puVar15;\n  uchar *local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = section->start;\n  end = local_40 + (int)section->size;\n  introduce((dwarf_section *)&section->name,(bfd_boolean)&section->filename,in_a2);\n  pcVar4 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar5 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar4)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      puVar6 = process_abbrev_section(local_40,end);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = puVar6;\n        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n      puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar13 == (undefined4 *)0x0) break;\n      local_40 = (uchar *)0x0;\nLAB_0005b8c4:\n      puVar2 = PTR_DAT_000c338c;\n      puVar12 = PTR_DAT_000c338c + 0x64d0;\n      do {\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    local_40 = puVar6;\n  } while (local_40 != (uchar *)0x0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}" primitive_type (function_declarator "display_debug_abbrev(dwarf_section *section,void *file)" identifier (parameter_list "(dwarf_section *section,void *file)" ( (parameter_declaration "dwarf_section *section" type_identifier (pointer_declarator "*section" * identifier)) , (parameter_declaration "void *file" primitive_type (pointer_declarator "*file" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uchar *end;\n  code *pcVar4;\n  code *pcVar5;\n  uchar *puVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  dwarf_section *in_a2;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 *puVar13;\n  undefined *puVar14;\n  ulong *puVar15;\n  uchar *local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = section->start;\n  end = local_40 + (int)section->size;\n  introduce((dwarf_section *)&section->name,(bfd_boolean)&section->filename,in_a2);\n  pcVar4 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar5 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar4)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      puVar6 = process_abbrev_section(local_40,end);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = puVar6;\n        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n      puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar13 == (undefined4 *)0x0) break;\n      local_40 = (uchar *)0x0;\nLAB_0005b8c4:\n      puVar2 = PTR_DAT_000c338c;\n      puVar12 = PTR_DAT_000c338c + 0x64d0;\n      do {\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    local_40 = puVar6;\n  } while (local_40 != (uchar *)0x0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uchar *end;" type_identifier (pointer_declarator "*end" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "dwarf_section *in_a2;" type_identifier (pointer_declarator "*in_a2" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "ulong *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uchar *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (expression_statement "puVar1 = PTR_DAT_000c3378;" (assignment_expression "puVar1 = PTR_DAT_000c3378" identifier = identifier) ;) (expression_statement "local_40 = section->start;" (assignment_expression "local_40 = section->start" identifier = (field_expression "section->start" identifier -> field_identifier)) ;) (expression_statement "end = local_40 + (int)section->size;" (assignment_expression "end = local_40 + (int)section->size" identifier = (binary_expression "local_40 + (int)section->size" identifier + (cast_expression "(int)section->size" ( (type_descriptor "int" primitive_type) ) (field_expression "section->size" identifier -> field_identifier)))) ;) (expression_statement "introduce((dwarf_section *)&section->name,(bfd_boolean)&section->filename,in_a2);" (call_expression "introduce((dwarf_section *)&section->name,(bfd_boolean)&section->filename,in_a2)" identifier (argument_list "((dwarf_section *)&section->name,(bfd_boolean)&section->filename,in_a2)" ( (cast_expression "(dwarf_section *)&section->name" ( (type_descriptor "dwarf_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&section->name" & (field_expression "section->name" identifier -> field_identifier))) , (binary_expression "(bfd_boolean)&section->filename" (parenthesized_expression "(bfd_boolean)" ( identifier )) & (field_expression "section->filename" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_000c3448 + 0x66c4);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_000c3448 + 0x66c4)" identifier = (cast_expression "(code *)(PTR_LAB_000c3448 + 0x66c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000c3448 + 0x66c4)" ( (binary_expression "PTR_LAB_000c3448 + 0x66c4" identifier + number_literal) )))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_000c34b4 + -0x6fe8)" identifier = (cast_expression "(code *)(PTR_LAB_000c34b4 + -0x6fe8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000c34b4 + -0x6fe8)" ( (binary_expression "PTR_LAB_000c34b4 + -0x6fe8" identifier + number_literal) )))) ;) (do_statement "do {\n    (*pcVar4)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      puVar6 = process_abbrev_section(local_40,end);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = puVar6;\n        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n      puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar13 == (undefined4 *)0x0) break;\n      local_40 = (uchar *)0x0;\nLAB_0005b8c4:\n      puVar2 = PTR_DAT_000c338c;\n      puVar12 = PTR_DAT_000c338c + 0x64d0;\n      do {\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    local_40 = puVar6;\n  } while (local_40 != (uchar *)0x0);" do (compound_statement "{\n    (*pcVar4)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      puVar6 = process_abbrev_section(local_40,end);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = puVar6;\n        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n      puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar13 == (undefined4 *)0x0) break;\n      local_40 = (uchar *)0x0;\nLAB_0005b8c4:\n      puVar2 = PTR_DAT_000c338c;\n      puVar12 = PTR_DAT_000c338c + 0x64d0;\n      do {\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    local_40 = puVar6;\n  }" { (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(puVar1 + 0x7f20) == 0) {\n      puVar6 = process_abbrev_section(local_40,end);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = puVar6;\n        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n      puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar13 == (undefined4 *)0x0) break;\n      local_40 = (uchar *)0x0;\nLAB_0005b8c4:\n      puVar2 = PTR_DAT_000c338c;\n      puVar12 = PTR_DAT_000c338c + 0x64d0;\n      do {\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      } while (puVar13 != (undefined4 *)0x0);\n    }" if (parenthesized_expression "(*(int *)(puVar1 + 0x7f20) == 0)" ( (binary_expression "*(int *)(puVar1 + 0x7f20) == 0" (pointer_expression "*(int *)(puVar1 + 0x7f20)" * (cast_expression "(int *)(puVar1 + 0x7f20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      puVar6 = process_abbrev_section(local_40,end);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = puVar6;\n        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }" { (expression_statement "puVar6 = process_abbrev_section(local_40,end);" (assignment_expression "puVar6 = process_abbrev_section(local_40,end)" identifier = (call_expression "process_abbrev_section(local_40,end)" identifier (argument_list "(local_40,end)" ( identifier , identifier )))) ;) (if_statement "if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = puVar6;\n        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }" if (parenthesized_expression "(*(int *)(puVar1 + 0x7f20) != 0)" ( (binary_expression "*(int *)(puVar1 + 0x7f20) != 0" (pointer_expression "*(int *)(puVar1 + 0x7f20)" * (cast_expression "(int *)(puVar1 + 0x7f20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n        puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = puVar6;\n        if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }" { (expression_statement "uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);" (assignment_expression "uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,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_DAT_000c338c + 0x6484,5)" ( number_literal , (binary_expression "PTR_DAT_000c338c + 0x6484" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);" (call_expression "(*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,(int)local_40 - (int)section->start)" ( identifier , (binary_expression "(int)local_40 - (int)section->start" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)section->start" ( (type_descriptor "int" primitive_type) ) (field_expression "section->start" identifier -> field_identifier))) ))) ;) (expression_statement "puVar13 = *(undefined4 **)(puVar1 + 0x7f20);" (assignment_expression "puVar13 = *(undefined4 **)(puVar1 + 0x7f20)" identifier = (pointer_expression "*(undefined4 **)(puVar1 + 0x7f20)" * (cast_expression "(undefined4 **)(puVar1 + 0x7f20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) ))))) ;) (expression_statement "local_40 = puVar6;" (assignment_expression "local_40 = puVar6" identifier = identifier) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) goto LAB_0005b8c4;" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005b8c4;" goto statement_identifier ;)) })) }) (else_clause "else {\n      uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n      puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar13 == (undefined4 *)0x0) break;\n      local_40 = (uchar *)0x0;\nLAB_0005b8c4:\n      puVar2 = PTR_DAT_000c338c;\n      puVar12 = PTR_DAT_000c338c + 0x64d0;\n      do {\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      } while (puVar13 != (undefined4 *)0x0);\n    }" else (compound_statement "{\n      uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);\n      puVar13 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar13 == (undefined4 *)0x0) break;\n      local_40 = (uchar *)0x0;\nLAB_0005b8c4:\n      puVar2 = PTR_DAT_000c338c;\n      puVar12 = PTR_DAT_000c338c + 0x64d0;\n      do {\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      } while (puVar13 != (undefined4 *)0x0);\n    }" { (expression_statement "uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5);" (assignment_expression "uVar10 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_DAT_000c338c + 0x6484,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_DAT_000c338c + 0x6484,5)" ( number_literal , (binary_expression "PTR_DAT_000c338c + 0x6484" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start);" (call_expression "(*(code *)PTR_printf_000c3634)(uVar10,(int)local_40 - (int)section->start)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,(int)local_40 - (int)section->start)" ( identifier , (binary_expression "(int)local_40 - (int)section->start" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)section->start" ( (type_descriptor "int" primitive_type) ) (field_expression "section->start" identifier -> field_identifier))) ))) ;) (expression_statement "puVar13 = *(undefined4 **)(puVar1 + 0x7f20);" (assignment_expression "puVar13 = *(undefined4 **)(puVar1 + 0x7f20)" identifier = (pointer_expression "*(undefined4 **)(puVar1 + 0x7f20)" * (cast_expression "(undefined4 **)(puVar1 + 0x7f20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) ))))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_40 = (uchar *)0x0;" (assignment_expression "local_40 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0005b8c4:\n      puVar2 = PTR_DAT_000c338c;" statement_identifier : (expression_statement "puVar2 = PTR_DAT_000c338c;" (assignment_expression "puVar2 = PTR_DAT_000c338c" identifier = identifier) ;)) (expression_statement "puVar12 = PTR_DAT_000c338c + 0x64d0;" (assignment_expression "puVar12 = PTR_DAT_000c338c + 0x64d0" identifier = (binary_expression "PTR_DAT_000c338c + 0x64d0" identifier + number_literal)) ;) (do_statement "do {\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      } while (puVar13 != (undefined4 *)0x0);" do (compound_statement "{\n        uVar11 = *puVar13;\n        uVar10 = (*pcVar5)(puVar13[1]);\n        if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);\n        puVar3 = PTR_stdout_000c3588;\n        puVar15 = (ulong *)puVar13[3];\n        if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }\nLAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];\n        puVar6 = local_40;\n      }" { (expression_statement "uVar11 = *puVar13;" (assignment_expression "uVar11 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "uVar10 = (*pcVar5)(puVar13[1]);" (assignment_expression "uVar10 = (*pcVar5)(puVar13[1])" identifier = (call_expression "(*pcVar5)(puVar13[1])" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(puVar13[1])" ( (subscript_expression "puVar13[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (puVar13[2] == 0) {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" if (parenthesized_expression "(puVar13[2] == 0)" ( (binary_expression "puVar13[2] == 0" (subscript_expression "puVar13[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }" { (expression_statement "uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);" (assignment_expression "uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,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,puVar2 + 0x64ac,5)" ( number_literal , (binary_expression "puVar2 + 0x64ac" identifier + number_literal) , number_literal )))) ;) }) (else_clause "else {\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" else (compound_statement "{\n          uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" { (expression_statement "uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);" (assignment_expression "uVar7 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c)" (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,puVar2 + 0x649c)" ( number_literal , (binary_expression "puVar2 + 0x649c" identifier + number_literal) )))) ;) }))) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar11,uVar10,uVar7)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x64b8,uVar11,uVar10,uVar7)" ( (binary_expression "puVar2 + 0x64b8" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "puVar3 = PTR_stdout_000c3588;" (assignment_expression "puVar3 = PTR_stdout_000c3588" identifier = identifier) ;) (expression_statement "puVar15 = (ulong *)puVar13[3];" (assignment_expression "puVar15 = (ulong *)puVar13[3]" identifier = (cast_expression "(ulong *)puVar13[3]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 != (ulong *)0x0) {\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }" if (parenthesized_expression "(puVar15 != (ulong *)0x0)" ( (binary_expression "puVar15 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar14 = PTR_DAT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);\n        }" { (expression_statement "puVar14 = PTR_DAT_000c338c + 0x64e0;" (assignment_expression "puVar14 = PTR_DAT_000c338c + 0x64e0" identifier = (binary_expression "PTR_DAT_000c338c + 0x64e0" identifier + number_literal)) ;) (do_statement "do {\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          } while (puVar15 != (ulong *)0x0);" do (compound_statement "{\n            while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar15 = (ulong *)puVar15[4];\n          }" { (while_statement "while( true ) {\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              pcVar8 = get_AT_name(*puVar15);\n              pcVar9 = get_FORM_name(puVar15[1]);\n              (*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);\n              if (puVar15[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar14);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar15 = (ulong *)puVar15[4];\n              if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;\n            }" { (expression_statement "pcVar8 = get_AT_name(*puVar15);" (assignment_expression "pcVar8 = get_AT_name(*puVar15)" identifier = (call_expression "get_AT_name(*puVar15)" identifier (argument_list "(*puVar15)" ( (pointer_expression "*puVar15" * identifier) )))) ;) (expression_statement "pcVar9 = get_FORM_name(puVar15[1]);" (assignment_expression "pcVar9 = get_FORM_name(puVar15[1])" identifier = (call_expression "get_FORM_name(puVar15[1])" identifier (argument_list "(puVar15[1])" ( (subscript_expression "puVar15[1]" identifier [ number_literal ]) )))) ;) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12,pcVar8,pcVar9)" ( identifier , identifier , identifier ))) ;) (if_statement "if (puVar15[1] != 0x21) break;" if (parenthesized_expression "(puVar15[1] != 0x21)" ( (binary_expression "puVar15[1] != 0x21" (subscript_expression "puVar15[1]" identifier [ number_literal ]) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar14);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar14)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);" (call_expression "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3)" (parenthesized_expression "(*(code *)PTR_putc_000c356c)" ( (pointer_expression "*(code *)PTR_putc_000c356c" * (cast_expression "(code *)PTR_putc_000c356c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10,*(undefined4 *)puVar3)" ( number_literal , (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar15 = (ulong *)puVar15[4];" (assignment_expression "puVar15 = (ulong *)puVar15[4]" identifier = (cast_expression "(ulong *)puVar15[4]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[4]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 == (ulong *)0x0) goto LAB_0005b9ec;" if (parenthesized_expression "(puVar15 == (ulong *)0x0)" ( (binary_expression "puVar15 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005b9ec;" goto statement_identifier ;)) })) (expression_statement "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);" (call_expression "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3)" (parenthesized_expression "(*(code *)PTR_putc_000c356c)" ( (pointer_expression "*(code *)PTR_putc_000c356c" * (cast_expression "(code *)PTR_putc_000c356c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10,*(undefined4 *)puVar3)" ( number_literal , (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar15 = (ulong *)puVar15[4];" (assignment_expression "puVar15 = (ulong *)puVar15[4]" identifier = (cast_expression "(ulong *)puVar15[4]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[4]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar15 != (ulong *)0x0)" ( (binary_expression "puVar15 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0005b9ec:\n        puVar13 = (undefined4 *)puVar13[5];" statement_identifier : (expression_statement "puVar13 = (undefined4 *)puVar13[5];" (assignment_expression "puVar13 = (undefined4 *)puVar13[5]" identifier = (cast_expression "(undefined4 *)puVar13[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[5]" identifier [ number_literal ]))) ;)) (expression_statement "puVar6 = local_40;" (assignment_expression "puVar6 = local_40" identifier = identifier) ;) }) while (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "local_40 = puVar6;" (assignment_expression "local_40 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "(local_40 != (uchar *)0x0)" ( (binary_expression "local_40 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "(*(code *)PTR_putchar_000c3594)(10);" (call_expression "(*(code *)PTR_putchar_000c3594)(10)" (parenthesized_expression "(*(code *)PTR_putchar_000c3594)" ( (pointer_expression "*(code *)PTR_putchar_000c3594" * (cast_expression "(code *)PTR_putchar_000c3594" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined4 FUN_0005b744(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  int local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = *(int *)(param_1 + 0x10);\n  iVar4 = local_40 + *(int *)(param_1 + 0x24);\n  FUN_00059b70(param_1 + 8,param_1 + 0xc);\n  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_0005b744(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  int local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = *(int *)(param_1 + 0x10);\n  iVar4 = local_40 + *(int *)(param_1 + 0x24);\n  FUN_00059b70(param_1 + 8,param_1 + 0xc);\n  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}" type_identifier (function_declarator "FUN_0005b744(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  int local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = *(int *)(param_1 + 0x10);\n  iVar4 = local_40 + *(int *)(param_1 + 0x24);\n  FUN_00059b70(param_1 + 8,param_1 + 0xc);\n  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (expression_statement "puVar1 = PTR_DAT_000c3378;" (assignment_expression "puVar1 = PTR_DAT_000c3378" identifier = identifier) ;) (expression_statement "local_40 = *(int *)(param_1 + 0x10);" (assignment_expression "local_40 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = local_40 + *(int *)(param_1 + 0x24);" (assignment_expression "iVar4 = local_40 + *(int *)(param_1 + 0x24)" identifier = (binary_expression "local_40 + *(int *)(param_1 + 0x24)" identifier + (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))))) ;) (expression_statement "FUN_00059b70(param_1 + 8,param_1 + 0xc);" (call_expression "FUN_00059b70(param_1 + 8,param_1 + 0xc)" identifier (argument_list "(param_1 + 8,param_1 + 0xc)" ( (binary_expression "param_1 + 8" identifier + number_literal) , (binary_expression "param_1 + 0xc" identifier + number_literal) ))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4)" identifier = (cast_expression "(code *)(PTR_LAB_000c3448 + 0x66c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000c3448 + 0x66c4)" ( (binary_expression "PTR_LAB_000c3448 + 0x66c4" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8)" identifier = (cast_expression "(code *)(PTR_LAB_000c34b4 + -0x6fe8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000c34b4 + -0x6fe8)" ( (binary_expression "PTR_LAB_000c34b4 + -0x6fe8" identifier + number_literal) )))) ;) (do_statement "do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);" do (compound_statement "{\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  }" { (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }" if (parenthesized_expression "(*(int *)(puVar1 + 0x7f20) == 0)" ( (binary_expression "*(int *)(puVar1 + 0x7f20) == 0" (pointer_expression "*(int *)(puVar1 + 0x7f20)" * (cast_expression "(int *)(puVar1 + 0x7f20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }" { (expression_statement "iVar7 = FUN_0005b334(local_40,iVar4);" (assignment_expression "iVar7 = FUN_0005b334(local_40,iVar4)" identifier = (call_expression "FUN_0005b334(local_40,iVar4)" identifier (argument_list "(local_40,iVar4)" ( identifier , identifier )))) ;) (if_statement "if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }" if (parenthesized_expression "(*(int *)(puVar1 + 0x7f20) != 0)" ( (binary_expression "*(int *)(puVar1 + 0x7f20) != 0" (pointer_expression "*(int *)(puVar1 + 0x7f20)" * (cast_expression "(int *)(puVar1 + 0x7f20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }" { (expression_statement "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);" (assignment_expression "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,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_UINT_000c338c + 0x6484,5)" ( number_literal , (binary_expression "PTR_UINT_000c338c + 0x6484" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));" (call_expression "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10))" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,local_40 - *(int *)(param_1 + 0x10))" ( identifier , (binary_expression "local_40 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ))) ;) (expression_statement "puVar12 = *(undefined4 **)(puVar1 + 0x7f20);" (assignment_expression "puVar12 = *(undefined4 **)(puVar1 + 0x7f20)" identifier = (pointer_expression "*(undefined4 **)(puVar1 + 0x7f20)" * (cast_expression "(undefined4 **)(puVar1 + 0x7f20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) ))))) ;) (expression_statement "local_40 = iVar7;" (assignment_expression "local_40 = iVar7" identifier = identifier) ;) (if_statement "if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005b8c4;" goto statement_identifier ;)) })) }) (else_clause "else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }" else (compound_statement "{\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }" { (expression_statement "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);" (assignment_expression "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,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_UINT_000c338c + 0x6484,5)" ( number_literal , (binary_expression "PTR_UINT_000c338c + 0x6484" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));" (call_expression "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10))" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,local_40 - *(int *)(param_1 + 0x10))" ( identifier , (binary_expression "local_40 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ))) ;) (expression_statement "puVar12 = *(undefined4 **)(puVar1 + 0x7f20);" (assignment_expression "puVar12 = *(undefined4 **)(puVar1 + 0x7f20)" identifier = (pointer_expression "*(undefined4 **)(puVar1 + 0x7f20)" * (cast_expression "(undefined4 **)(puVar1 + 0x7f20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x7f20)" ( (binary_expression "puVar1 + 0x7f20" identifier + number_literal) ))))) ;) (if_statement "if (puVar12 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;" statement_identifier : (expression_statement "puVar2 = PTR_UINT_000c338c;" (assignment_expression "puVar2 = PTR_UINT_000c338c" identifier = identifier) ;)) (expression_statement "puVar11 = PTR_UINT_000c338c + 0x64d0;" (assignment_expression "puVar11 = PTR_UINT_000c338c + 0x64d0" identifier = (binary_expression "PTR_UINT_000c338c + 0x64d0" identifier + number_literal)) ;) (do_statement "do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);" do (compound_statement "{\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      }" { (expression_statement "uVar10 = *puVar12;" (assignment_expression "uVar10 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar9 = (*pcVar6)(puVar12[1]);" (assignment_expression "uVar9 = (*pcVar6)(puVar12[1])" identifier = (call_expression "(*pcVar6)(puVar12[1])" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(puVar12[1])" ( (subscript_expression "puVar12[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" if (parenthesized_expression "(puVar12[2] == 0)" ( (binary_expression "puVar12[2] == 0" (subscript_expression "puVar12[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }" { (expression_statement "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);" (assignment_expression "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,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,puVar2 + 0x64ac,5)" ( number_literal , (binary_expression "puVar2 + 0x64ac" identifier + number_literal) , number_literal )))) ;) }) (else_clause "else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" else (compound_statement "{\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" { (expression_statement "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);" (assignment_expression "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c)" identifier = (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c)" (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,puVar2 + 0x649c)" ( number_literal , (binary_expression "puVar2 + 0x649c" identifier + number_literal) )))) ;) }))) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x64b8,uVar10,uVar9,uVar8)" ( (binary_expression "puVar2 + 0x64b8" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "puVar3 = PTR_stdout_000c3588;" (assignment_expression "puVar3 = PTR_stdout_000c3588" identifier = identifier) ;) (expression_statement "puVar14 = (undefined4 *)puVar12[3];" (assignment_expression "puVar14 = (undefined4 *)puVar12[3]" identifier = (cast_expression "(undefined4 *)puVar12[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }" if (parenthesized_expression "(puVar14 != (undefined4 *)0x0)" ( (binary_expression "puVar14 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }" { (expression_statement "puVar13 = PTR_UINT_000c338c + 0x64e0;" (assignment_expression "puVar13 = PTR_UINT_000c338c + 0x64e0" identifier = (binary_expression "PTR_UINT_000c338c + 0x64e0" identifier + number_literal)) ;) (do_statement "do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);" do (compound_statement "{\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          }" { (while_statement "while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }" { (expression_statement "uVar9 = FUN_000590e0(*puVar14);" (assignment_expression "uVar9 = FUN_000590e0(*puVar14)" identifier = (call_expression "FUN_000590e0(*puVar14)" identifier (argument_list "(*puVar14)" ( (pointer_expression "*puVar14" * identifier) )))) ;) (expression_statement "uVar10 = FUN_000591b0(puVar14[1]);" (assignment_expression "uVar10 = FUN_000591b0(puVar14[1])" identifier = (call_expression "FUN_000591b0(puVar14[1])" identifier (argument_list "(puVar14[1])" ( (subscript_expression "puVar14[1]" identifier [ number_literal ]) )))) ;) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,uVar9,uVar10)" ( identifier , identifier , identifier ))) ;) (if_statement "if (puVar14[1] != 0x21) break;" if (parenthesized_expression "(puVar14[1] != 0x21)" ( (binary_expression "puVar14[1] != 0x21" (subscript_expression "puVar14[1]" identifier [ number_literal ]) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar13);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar13)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" ( (pointer_expression "*(code *)PTR_printf_000c3634" * (cast_expression "(code *)PTR_printf_000c3634" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);" (call_expression "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3)" (parenthesized_expression "(*(code *)PTR_putc_000c356c)" ( (pointer_expression "*(code *)PTR_putc_000c356c" * (cast_expression "(code *)PTR_putc_000c356c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10,*(undefined4 *)puVar3)" ( number_literal , (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar14 = (undefined4 *)puVar14[4];" (assignment_expression "puVar14 = (undefined4 *)puVar14[4]" identifier = (cast_expression "(undefined4 *)puVar14[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[4]" identifier [ number_literal ]))) ;) (if_statement "if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;" if (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" ( (binary_expression "puVar14 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005b9ec;" goto statement_identifier ;)) })) (expression_statement "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);" (call_expression "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3)" (parenthesized_expression "(*(code *)PTR_putc_000c356c)" ( (pointer_expression "*(code *)PTR_putc_000c356c" * (cast_expression "(code *)PTR_putc_000c356c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10,*(undefined4 *)puVar3)" ( number_literal , (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar14 = (undefined4 *)puVar14[4];" (assignment_expression "puVar14 = (undefined4 *)puVar14[4]" identifier = (cast_expression "(undefined4 *)puVar14[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[4]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar14 != (undefined4 *)0x0)" ( (binary_expression "puVar14 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];" statement_identifier : (expression_statement "puVar12 = (undefined4 *)puVar12[5];" (assignment_expression "puVar12 = (undefined4 *)puVar12[5]" identifier = (cast_expression "(undefined4 *)puVar12[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[5]" identifier [ number_literal ]))) ;)) (expression_statement "iVar7 = local_40;" (assignment_expression "iVar7 = local_40" identifier = identifier) ;) }) while (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "local_40 = iVar7;" (assignment_expression "local_40 = iVar7" identifier = identifier) ;) }) while (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) ;) (expression_statement "(*(code *)PTR_putchar_000c3594)(10);" (call_expression "(*(code *)PTR_putchar_000c3594)(10)" (parenthesized_expression "(*(code *)PTR_putchar_000c3594)" ( (pointer_expression "*(code *)PTR_putchar_000c3594" * (cast_expression "(code *)PTR_putchar_000c3594" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal ))) ;) (return_statement "return 1;" 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = 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 = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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 = (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 , (binary_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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (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 , (binary_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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == 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 )))) ;) }) (else_clause else (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) )))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (break_statement break ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_0005b744(int param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  int local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = *(int *)(param_1 + 0x10);\n  iVar4 = local_40 + *(int *)(param_1 + 0x24);\n  FUN_00059b70(param_1 + 8,param_1 + 0xc);\n  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_0005b744(int param_1)" (identifier "FUN_0005b744") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  code *pcVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  int local_40;\n  \n  puVar1 = PTR_DAT_000c3378;\n  local_40 = *(int *)(param_1 + 0x10);\n  iVar4 = local_40 + *(int *)(param_1 + 0x24);\n  FUN_00059b70(param_1 + 8,param_1 + 0xc);\n  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);\n  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);\n  do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);\n  (*(code *)PTR_putchar_000c3594)(10);\n  return 1;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "code *pcVar5;" (type_identifier "code") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (expression_statement "puVar1 = PTR_DAT_000c3378;" (assignment_expression "puVar1 = PTR_DAT_000c3378" (identifier "puVar1") (= "=") (identifier "PTR_DAT_000c3378")) (; ";")) (expression_statement "local_40 = *(int *)(param_1 + 0x10);" (assignment_expression "local_40 = *(int *)(param_1 + 0x10)" (identifier "local_40") (= "=") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar4 = local_40 + *(int *)(param_1 + 0x24);" (assignment_expression "iVar4 = local_40 + *(int *)(param_1 + 0x24)" (identifier "iVar4") (= "=") (binary_expression "local_40 + *(int *)(param_1 + 0x24)" (identifier "local_40") (+ "+") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))))) (; ";")) (expression_statement "FUN_00059b70(param_1 + 8,param_1 + 0xc);" (call_expression "FUN_00059b70(param_1 + 8,param_1 + 0xc)" (identifier "FUN_00059b70") (argument_list "(param_1 + 8,param_1 + 0xc)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) (, ",") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))) (; ";")) (expression_statement "pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4)" (identifier "pcVar5") (= "=") (cast_expression "(code *)(PTR_LAB_000c3448 + 0x66c4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000c3448 + 0x66c4)" (( "(") (binary_expression "PTR_LAB_000c3448 + 0x66c4" (identifier "PTR_LAB_000c3448") (+ "+") (number_literal "0x66c4")) () ")")))) (; ";")) (expression_statement "pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(PTR_LAB_000c34b4 + -0x6fe8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000c34b4 + -0x6fe8)" (( "(") (binary_expression "PTR_LAB_000c34b4 + -0x6fe8" (identifier "PTR_LAB_000c34b4") (+ "+") (number_literal "-0x6fe8")) () ")")))) (; ";")) (do_statement "do {\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  } while (local_40 != 0);" (do "do") (compound_statement "{\n    (*pcVar5)();\n    if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }\n    local_40 = iVar7;\n  }" ({ "{") (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(int *)(puVar1 + 0x7f20) == 0) {\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }\n    else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar1 + 0x7f20) == 0)" (( "(") (binary_expression "*(int *)(puVar1 + 0x7f20) == 0" (pointer_expression "*(int *)(puVar1 + 0x7f20)" (* "*") (cast_expression "(int *)(puVar1 + 0x7f20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x7f20)" (( "(") (binary_expression "puVar1 + 0x7f20" (identifier "puVar1") (+ "+") (number_literal "0x7f20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar7 = FUN_0005b334(local_40,iVar4);\n      if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }\n    }" ({ "{") (expression_statement "iVar7 = FUN_0005b334(local_40,iVar4);" (assignment_expression "iVar7 = FUN_0005b334(local_40,iVar4)" (identifier "iVar7") (= "=") (call_expression "FUN_0005b334(local_40,iVar4)" (identifier "FUN_0005b334") (argument_list "(local_40,iVar4)" (( "(") (identifier "local_40") (, ",") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if (*(int *)(puVar1 + 0x7f20) != 0) {\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }" (if "if") (parenthesized_expression "(*(int *)(puVar1 + 0x7f20) != 0)" (( "(") (binary_expression "*(int *)(puVar1 + 0x7f20) != 0" (pointer_expression "*(int *)(puVar1 + 0x7f20)" (* "*") (cast_expression "(int *)(puVar1 + 0x7f20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x7f20)" (( "(") (binary_expression "puVar1 + 0x7f20" (identifier "puVar1") (+ "+") (number_literal "0x7f20")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n        local_40 = iVar7;\n        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;\n      }" ({ "{") (expression_statement "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);" (assignment_expression "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5)" (identifier "uVar9") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,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_UINT_000c338c + 0x6484,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_000c338c + 0x6484" (identifier "PTR_UINT_000c338c") (+ "+") (number_literal "0x6484")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));" (call_expression "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10))" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" (( "(") (pointer_expression "*(code *)PTR_printf_000c3634" (* "*") (cast_expression "(code *)PTR_printf_000c3634" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_000c3634"))) () ")")) (argument_list "(uVar9,local_40 - *(int *)(param_1 + 0x10))" (( "(") (identifier "uVar9") (, ",") (binary_expression "local_40 - *(int *)(param_1 + 0x10)" (identifier "local_40") (- "-") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) (; ";")) (expression_statement "puVar12 = *(undefined4 **)(puVar1 + 0x7f20);" (assignment_expression "puVar12 = *(undefined4 **)(puVar1 + 0x7f20)" (identifier "puVar12") (= "=") (pointer_expression "*(undefined4 **)(puVar1 + 0x7f20)" (* "*") (cast_expression "(undefined4 **)(puVar1 + 0x7f20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + 0x7f20)" (( "(") (binary_expression "puVar1 + 0x7f20" (identifier "puVar1") (+ "+") (number_literal "0x7f20")) () ")"))))) (; ";")) (expression_statement "local_40 = iVar7;" (assignment_expression "local_40 = iVar7" (identifier "local_40") (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;" (if "if") (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0005b8c4;" (goto "goto") (statement_identifier "LAB_0005b8c4") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }" (else "else") (compound_statement "{\n      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);\n      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));\n      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);\n      if (puVar12 == (undefined4 *)0x0) break;\n      local_40 = 0;\nLAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;\n      puVar11 = PTR_UINT_000c338c + 0x64d0;\n      do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);\n    }" ({ "{") (expression_statement "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);" (assignment_expression "uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5)" (identifier "uVar9") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,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_UINT_000c338c + 0x6484,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_000c338c + 0x6484" (identifier "PTR_UINT_000c338c") (+ "+") (number_literal "0x6484")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));" (call_expression "(*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10))" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" (( "(") (pointer_expression "*(code *)PTR_printf_000c3634" (* "*") (cast_expression "(code *)PTR_printf_000c3634" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_000c3634"))) () ")")) (argument_list "(uVar9,local_40 - *(int *)(param_1 + 0x10))" (( "(") (identifier "uVar9") (, ",") (binary_expression "local_40 - *(int *)(param_1 + 0x10)" (identifier "local_40") (- "-") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) (; ";")) (expression_statement "puVar12 = *(undefined4 **)(puVar1 + 0x7f20);" (assignment_expression "puVar12 = *(undefined4 **)(puVar1 + 0x7f20)" (identifier "puVar12") (= "=") (pointer_expression "*(undefined4 **)(puVar1 + 0x7f20)" (* "*") (cast_expression "(undefined4 **)(puVar1 + 0x7f20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + 0x7f20)" (( "(") (binary_expression "puVar1 + 0x7f20" (identifier "puVar1") (+ "+") (number_literal "0x7f20")) () ")"))))) (; ";")) (if_statement "if (puVar12 == (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined4 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0005b8c4:\n      puVar2 = PTR_UINT_000c338c;" (statement_identifier "LAB_0005b8c4") (: ":") (expression_statement "puVar2 = PTR_UINT_000c338c;" (assignment_expression "puVar2 = PTR_UINT_000c338c" (identifier "puVar2") (= "=") (identifier "PTR_UINT_000c338c")) (; ";"))) (expression_statement "puVar11 = PTR_UINT_000c338c + 0x64d0;" (assignment_expression "puVar11 = PTR_UINT_000c338c + 0x64d0" (identifier "puVar11") (= "=") (binary_expression "PTR_UINT_000c338c + 0x64d0" (identifier "PTR_UINT_000c338c") (+ "+") (number_literal "0x64d0"))) (; ";")) (do_statement "do {\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      } while (puVar12 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n        uVar10 = *puVar12;\n        uVar9 = (*pcVar6)(puVar12[1]);\n        if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }\n        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);\n        puVar3 = PTR_stdout_000c3588;\n        puVar14 = (undefined4 *)puVar12[3];\n        if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }\nLAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];\n        iVar7 = local_40;\n      }" ({ "{") (expression_statement "uVar10 = *puVar12;" (assignment_expression "uVar10 = *puVar12" (identifier "uVar10") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "uVar9 = (*pcVar6)(puVar12[1]);" (assignment_expression "uVar9 = (*pcVar6)(puVar12[1])" (identifier "uVar9") (= "=") (call_expression "(*pcVar6)(puVar12[1])" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "(puVar12[1])" (( "(") (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (puVar12[2] == 0) {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }\n        else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" (if "if") (parenthesized_expression "(puVar12[2] == 0)" (( "(") (binary_expression "puVar12[2] == 0" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);\n        }" ({ "{") (expression_statement "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);" (assignment_expression "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5)" (identifier "uVar8") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,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,puVar2 + 0x64ac,5)" (( "(") (number_literal "0") (, ",") (binary_expression "puVar2 + 0x64ac" (identifier "puVar2") (+ "+") (number_literal "0x64ac")) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" (else "else") (compound_statement "{\n          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);\n        }" ({ "{") (expression_statement "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);" (assignment_expression "uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c)" (identifier "uVar8") (= "=") (call_expression "(*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c)" (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,puVar2 + 0x649c)" (( "(") (number_literal "0") (, ",") (binary_expression "puVar2 + 0x649c" (identifier "puVar2") (+ "+") (number_literal "0x649c")) () ")")))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" (( "(") (pointer_expression "*(code *)PTR_printf_000c3634" (* "*") (cast_expression "(code *)PTR_printf_000c3634" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_000c3634"))) () ")")) (argument_list "(puVar2 + 0x64b8,uVar10,uVar9,uVar8)" (( "(") (binary_expression "puVar2 + 0x64b8" (identifier "puVar2") (+ "+") (number_literal "0x64b8")) (, ",") (identifier "uVar10") (, ",") (identifier "uVar9") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "puVar3 = PTR_stdout_000c3588;" (assignment_expression "puVar3 = PTR_stdout_000c3588" (identifier "puVar3") (= "=") (identifier "PTR_stdout_000c3588")) (; ";")) (expression_statement "puVar14 = (undefined4 *)puVar12[3];" (assignment_expression "puVar14 = (undefined4 *)puVar12[3]" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)puVar12[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (puVar14 != (undefined4 *)0x0) {\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }" (if "if") (parenthesized_expression "(puVar14 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar14 != (undefined4 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar13 = PTR_UINT_000c338c + 0x64e0;\n          do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);\n        }" ({ "{") (expression_statement "puVar13 = PTR_UINT_000c338c + 0x64e0;" (assignment_expression "puVar13 = PTR_UINT_000c338c + 0x64e0" (identifier "puVar13") (= "=") (binary_expression "PTR_UINT_000c338c + 0x64e0" (identifier "PTR_UINT_000c338c") (+ "+") (number_literal "0x64e0"))) (; ";")) (do_statement "do {\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          } while (puVar14 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n            while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }\n            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n            puVar14 = (undefined4 *)puVar14[4];\n          }" ({ "{") (while_statement "while( true ) {\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uVar9 = FUN_000590e0(*puVar14);\n              uVar10 = FUN_000591b0(puVar14[1]);\n              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);\n              if (puVar14[1] != 0x21) break;\n              (*(code *)PTR_printf_000c3634)(puVar13);\n              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);\n              puVar14 = (undefined4 *)puVar14[4];\n              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;\n            }" ({ "{") (expression_statement "uVar9 = FUN_000590e0(*puVar14);" (assignment_expression "uVar9 = FUN_000590e0(*puVar14)" (identifier "uVar9") (= "=") (call_expression "FUN_000590e0(*puVar14)" (identifier "FUN_000590e0") (argument_list "(*puVar14)" (( "(") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) () ")")))) (; ";")) (expression_statement "uVar10 = FUN_000591b0(puVar14[1]);" (assignment_expression "uVar10 = FUN_000591b0(puVar14[1])" (identifier "uVar10") (= "=") (call_expression "FUN_000591b0(puVar14[1])" (identifier "FUN_000591b0") (argument_list "(puVar14[1])" (( "(") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" (( "(") (pointer_expression "*(code *)PTR_printf_000c3634" (* "*") (cast_expression "(code *)PTR_printf_000c3634" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_000c3634"))) () ")")) (argument_list "(puVar11,uVar9,uVar10)" (( "(") (identifier "puVar11") (, ",") (identifier "uVar9") (, ",") (identifier "uVar10") () ")"))) (; ";")) (if_statement "if (puVar14[1] != 0x21) break;" (if "if") (parenthesized_expression "(puVar14[1] != 0x21)" (( "(") (binary_expression "puVar14[1] != 0x21" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x21")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "(*(code *)PTR_printf_000c3634)(puVar13);" (call_expression "(*(code *)PTR_printf_000c3634)(puVar13)" (parenthesized_expression "(*(code *)PTR_printf_000c3634)" (( "(") (pointer_expression "*(code *)PTR_printf_000c3634" (* "*") (cast_expression "(code *)PTR_printf_000c3634" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_000c3634"))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);" (call_expression "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3)" (parenthesized_expression "(*(code *)PTR_putc_000c356c)" (( "(") (pointer_expression "*(code *)PTR_putc_000c356c" (* "*") (cast_expression "(code *)PTR_putc_000c356c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_putc_000c356c"))) () ")")) (argument_list "(10,*(undefined4 *)puVar3)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(undefined4 *)puVar3" (* "*") (cast_expression "(undefined4 *)puVar3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")"))) (; ";")) (expression_statement "puVar14 = (undefined4 *)puVar14[4];" (assignment_expression "puVar14 = (undefined4 *)puVar14[4]" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)puVar14[4]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;" (if "if") (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar14 == (undefined4 *)0x0" (identifier "puVar14") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0005b9ec;" (goto "goto") (statement_identifier "LAB_0005b9ec") (; ";"))) (} "}"))) (expression_statement "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);" (call_expression "(*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3)" (parenthesized_expression "(*(code *)PTR_putc_000c356c)" (( "(") (pointer_expression "*(code *)PTR_putc_000c356c" (* "*") (cast_expression "(code *)PTR_putc_000c356c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_putc_000c356c"))) () ")")) (argument_list "(10,*(undefined4 *)puVar3)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(undefined4 *)puVar3" (* "*") (cast_expression "(undefined4 *)puVar3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")"))) (; ";")) (expression_statement "puVar14 = (undefined4 *)puVar14[4];" (assignment_expression "puVar14 = (undefined4 *)puVar14[4]" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)puVar14[4]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar14 != (undefined4 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0005b9ec:\n        puVar12 = (undefined4 *)puVar12[5];" (statement_identifier "LAB_0005b9ec") (: ":") (expression_statement "puVar12 = (undefined4 *)puVar12[5];" (assignment_expression "puVar12 = (undefined4 *)puVar12[5]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)puVar12[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]")))) (; ";"))) (expression_statement "iVar7 = local_40;" (assignment_expression "iVar7 = local_40" (identifier "iVar7") (= "=") (identifier "local_40")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")))) (expression_statement "local_40 = iVar7;" (assignment_expression "local_40 = iVar7" (identifier "local_40") (= "=") (identifier "iVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "(*(code *)PTR_putchar_000c3594)(10);" (call_expression "(*(code *)PTR_putchar_000c3594)(10)" (parenthesized_expression "(*(code *)PTR_putchar_000c3594)" (( "(") (pointer_expression "*(code *)PTR_putchar_000c3594" (* "*") (cast_expression "(code *)PTR_putchar_000c3594" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_putchar_000c3594"))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

int function_1(type_1 *section,void *file)

{
  type_2 *var_5;
  type_2 *var_9;
  type_2 *puVar3;
  type_3 *end;
  type_4 *pcVar4;
  type_4 *pcVar5;
  type_3 *puVar6;
  type_5 uVar7;
  char *pcVar8;
  char *pcVar9;
  type_5 uVar10;
  type_1 *in_a2;
  type_5 uVar11;
  type_2 *puVar12;
  type_5 *var_8;
  type_2 *puVar14;
  type_6 *var_10;
  type_3 *var_1;
  
  var_5 = PTR_DAT_000c3378;
  var_1 = section->start;
  end = var_1 + (int)section->size;
  var_2((type_1 *)&section->name,(bfd_boolean)&section->filename,in_a2);
  pcVar4 = (type_4 *)(var_3 + 0x66c4);
  pcVar5 = (type_4 *)(var_4 + -0x6fe8);
  do {
    (*pcVar4)();
    if (*(int *)(var_5 + 0x7f20) == 0) {
      puVar6 = var_6(var_1,end);
      if (*(int *)(var_5 + 0x7f20) != 0) {
        uVar10 = (*(type_4 *)PTR_dcgettext_000c360c)(0,var_7 + 0x6484,5);
        (*(type_4 *)PTR_printf_000c3634)(uVar10,(int)var_1 - (int)section->start);
        var_8 = *(type_5 **)(var_5 + 0x7f20);
        var_1 = puVar6;
        if (var_8 != (type_5 *)0x0) goto LAB_0005b8c4;
      }
    }
    else {
      uVar10 = (*(type_4 *)PTR_dcgettext_000c360c)(0,var_7 + 0x6484,5);
      (*(type_4 *)PTR_printf_000c3634)(uVar10,(int)var_1 - (int)section->start);
      var_8 = *(type_5 **)(var_5 + 0x7f20);
      if (var_8 == (type_5 *)0x0) break;
      var_1 = (type_3 *)0x0;
LAB_0005b8c4:
      var_9 = var_7;
      puVar12 = var_7 + 0x64d0;
      do {
        uVar11 = *var_8;
        uVar10 = (*pcVar5)(var_8[1]);
        if (var_8[2] == 0) {
          uVar7 = (*(type_4 *)PTR_dcgettext_000c360c)(0,var_9 + 0x64ac,5);
        }
        else {
          uVar7 = (*(type_4 *)PTR_dcgettext_000c360c)(0,var_9 + 0x649c);
        }
        (*(type_4 *)PTR_printf_000c3634)(var_9 + 0x64b8,uVar11,uVar10,uVar7);
        puVar3 = PTR_stdout_000c3588;
        var_10 = (type_6 *)var_8[3];
        if (var_10 != (type_6 *)0x0) {
          puVar14 = var_7 + 0x64e0;
          do {
            while( true ) {
              pcVar8 = var_11(*var_10);
              pcVar9 = var_12(var_10[1]);
              (*(type_4 *)PTR_printf_000c3634)(puVar12,pcVar8,pcVar9);
              if (var_10[1] != 0x21) break;
              (*(type_4 *)PTR_printf_000c3634)(puVar14);
              (*(type_4 *)PTR_putc_000c356c)(10,*(type_5 *)puVar3);
              var_10 = (type_6 *)var_10[4];
              if (var_10 == (type_6 *)0x0) goto LAB_0005b9ec;
            }
            (*(type_4 *)PTR_putc_000c356c)(10,*(type_5 *)puVar3);
            var_10 = (type_6 *)var_10[4];
          } while (var_10 != (type_6 *)0x0);
        }
LAB_0005b9ec:
        var_8 = (type_5 *)var_8[5];
        puVar6 = var_1;
      } while (var_8 != (type_5 *)0x0);
    }
    var_1 = puVar6;
  } while (var_1 != (type_3 *)0x0);
  (*(type_4 *)PTR_putchar_000c3594)(10);
  return 1;
}


(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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_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 (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (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: (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) (binary_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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (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) (binary_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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) alternative: (else_clause (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))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (break_statement)) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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 (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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: (goto_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 (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (number_literal)))) (return_statement (number_literal)))))

undefined4 MASKED(int param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  code *pcVar5;
  code *pcVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined *puVar11;
  undefined4 *puVar12;
  undefined *puVar13;
  undefined4 *puVar14;
  int local_40;
  
  puVar1 = PTR_DAT_000c3378;
  local_40 = *(int *)(param_1 + 0x10);
  iVar4 = local_40 + *(int *)(param_1 + 0x24);
  FUN_00059b70(param_1 + 8,param_1 + 0xc);
  pcVar5 = (code *)(PTR_LAB_000c3448 + 0x66c4);
  pcVar6 = (code *)(PTR_LAB_000c34b4 + -0x6fe8);
  do {
    (*pcVar5)();
    if (*(int *)(puVar1 + 0x7f20) == 0) {
      iVar7 = FUN_0005b334(local_40,iVar4);
      if (*(int *)(puVar1 + 0x7f20) != 0) {
        uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);
        (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));
        puVar12 = *(undefined4 **)(puVar1 + 0x7f20);
        local_40 = iVar7;
        if (puVar12 != (undefined4 *)0x0) goto LAB_0005b8c4;
      }
    }
    else {
      uVar9 = (*(code *)PTR_dcgettext_000c360c)(0,PTR_UINT_000c338c + 0x6484,5);
      (*(code *)PTR_printf_000c3634)(uVar9,local_40 - *(int *)(param_1 + 0x10));
      puVar12 = *(undefined4 **)(puVar1 + 0x7f20);
      if (puVar12 == (undefined4 *)0x0) break;
      local_40 = 0;
LAB_0005b8c4:
      puVar2 = PTR_UINT_000c338c;
      puVar11 = PTR_UINT_000c338c + 0x64d0;
      do {
        uVar10 = *puVar12;
        uVar9 = (*pcVar6)(puVar12[1]);
        if (puVar12[2] == 0) {
          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x64ac,5);
        }
        else {
          uVar8 = (*(code *)PTR_dcgettext_000c360c)(0,puVar2 + 0x649c);
        }
        (*(code *)PTR_printf_000c3634)(puVar2 + 0x64b8,uVar10,uVar9,uVar8);
        puVar3 = PTR_stdout_000c3588;
        puVar14 = (undefined4 *)puVar12[3];
        if (puVar14 != (undefined4 *)0x0) {
          puVar13 = PTR_UINT_000c338c + 0x64e0;
          do {
            while( true ) {
              uVar9 = FUN_000590e0(*puVar14);
              uVar10 = FUN_000591b0(puVar14[1]);
              (*(code *)PTR_printf_000c3634)(puVar11,uVar9,uVar10);
              if (puVar14[1] != 0x21) break;
              (*(code *)PTR_printf_000c3634)(puVar13);
              (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);
              puVar14 = (undefined4 *)puVar14[4];
              if (puVar14 == (undefined4 *)0x0) goto LAB_0005b9ec;
            }
            (*(code *)PTR_putc_000c356c)(10,*(undefined4 *)puVar3);
            puVar14 = (undefined4 *)puVar14[4];
          } while (puVar14 != (undefined4 *)0x0);
        }
LAB_0005b9ec:
        puVar12 = (undefined4 *)puVar12[5];
        iVar7 = local_40;
      } while (puVar12 != (undefined4 *)0x0);
    }
    local_40 = iVar7;
  } while (local_40 != 0);
  (*(code *)PTR_putchar_000c3594)(10);
  return 1;
}

