
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: bool doing_static_link(Parameters * this, Parameters * this) */

bool __thiscall gold::Parameters::doing_static_link(Parameters *this,Parameters *this_1)

{
  uint uVar1;
  undefined1 uVar3;
  uint uVar2;
  int iVar4;
  undefined4 *puVar5;
  undefined4 uVar6;
  int in_a3;
  uint unaff_s0;
  undefined *puVar7;
  code *pcVar8;
  code *pcVar9;
  uint uStack_cc;
  
  puVar7 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_s__0043226c + -0x2a98);
  pcVar8 = *(code **)(puVar7 + 0x205480);
  (*pcVar8)(*(int *)(puVar7 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar7 + 0x205328) + -0x2d94);
  pcVar9 = *(code **)(pcVar8 + 0x20544c);
  (*pcVar9)(*(int *)(pcVar8 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar8 + 0x2052f4) + -0x2e80);
  pcVar8 = *(code **)(pcVar9 + 0x205418);
  iVar4 = *(int *)(pcVar9 + 0x205408) + -0x4fe0;
  (*pcVar8)(iVar4,0xd81,*(int *)(pcVar9 + 0x2052c0) + -0x2f70);
  if (*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) == 0) {
    (**(code **)(pcVar8 + 0x2053e4))
              (*(int *)(pcVar8 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar8 + 0x20528c) + -0x2a68);
  }
  else if (**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4) == 0x20) {
    return SUB41(iVar4,0);
  }
  pcVar9 = *(code **)(pcVar8 + 0x2053e4);
  iVar4 = *(int *)(pcVar8 + 0x2053d4) + -0x5bdc;
  (*pcVar9)(iVar4,0x7f4,*(int *)(pcVar8 + 0x20528c) + -0x2b9c);
  if (*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) == 0) {
    (**(code **)(pcVar9 + 0x205364))
              (*(int *)(pcVar9 + 0x205354) + -0x5cec,0x69,*(int *)(pcVar9 + 0x20520c) + -0x2a68);
  }
  else if (**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4) == 0x40) {
    return SUB41(iVar4,0);
  }
  uVar6 = 0x7f4;
  pcVar8 = *(code **)(pcVar9 + 0x205364);
  iVar4 = *(int *)(pcVar9 + 0x20520c) + -0x2c30;
  puVar5 = (undefined4 *)(*(int *)(pcVar9 + 0x205354) - 0x5bdc);
  (*pcVar8)();
  if (puVar5 < (undefined4 *)0x40000000) {
    uVar6 = (**(code **)(pcVar8 + 0x20525c))((int)puVar5 << 2);
    uVar3 = (**(code **)(pcVar8 + 0x209770))(uVar6,0,(int)puVar5 << 2);
    return (bool)uVar3;
  }
  (**(code **)(pcVar8 + 0x205324))();
  uVar2 = puVar5[10];
  *puVar5 = uVar6;
  puVar5[1] = iVar4;
  *(byte *)(puVar5 + 0xb) = *(byte *)(puVar5 + 0xb) & 7;
  puVar5[4] = 0;
  puVar5[5] = 0;
  puVar5[6] = 0xffffffff;
  uVar1 = uVar2 & 0xffff;
  puVar5[7] = 0xffffffff;
  puVar5[8] = 0;
  puVar5[10] = uVar1 | in_a3 << 0x1c | ((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18 |
               (uStack_cc & 3) << 0x16 | (unaff_s0 & 0x3f) << 0x10;
  puVar5[9] = 0;
  *(ushort *)((int)puVar5 + 0x2a) = (ushort)uVar2 & 0xe040;
  return SUB41(uVar1,0);
}



int FUN_0022cf10(void)

{
  int iVar1;
  undefined4 in_a3;
  undefined *puVar2;
  code *pcVar3;
  code *pcVar4;
  
  puVar2 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);
  pcVar3 = *(code **)(puVar2 + 0x205480);
  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,
            puVar2 + 0x20d28c);
  pcVar4 = *(code **)(pcVar3 + 0x20544c);
  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,
            pcVar3 + 0x20d258);
  pcVar3 = *(code **)(pcVar4 + 0x205418);
  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;
  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);
  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {
    (**(code **)(pcVar3 + 0x2053e4))
              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,
               in_a3,pcVar3 + 0x20d1f0);
  }
  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {
    return iVar1;
  }
  pcVar4 = *(code **)(pcVar3 + 0x2053e4);
  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;
  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);
  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {
    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {
      return iVar1;
    }
    iVar1 = (**(code **)(pcVar4 + 0x205364))
                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,
                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);
    return iVar1;
  }
  iVar1 = (**(code **)(pcVar4 + 0x205364))
                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,
                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);
  return iVar1;
}


lui gp,0x21
addiu gp,gp,-0x2d40
addu gp,gp,t9
lw a2,-0x7f64(gp)
addiu sp,sp,-0x20
lw a0,-0x7e1c(gp)
li a1,0x82
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x2a98
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,-0x5cec
(translation_unit "int FUN_0022cf10(void)\n\n{\n  int iVar1;\n  undefined4 in_a3;\n  undefined *puVar2;\n  code *pcVar3;\n  code *pcVar4;\n  \n  puVar2 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);\n  pcVar3 = *(code **)(puVar2 + 0x205480);\n  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);\n  pcVar4 = *(code **)(pcVar3 + 0x20544c);\n  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);\n  pcVar3 = *(code **)(pcVar4 + 0x205418);\n  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;\n  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);\n  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }\n  pcVar4 = *(code **)(pcVar3 + 0x2053e4);\n  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;\n  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }\n  iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);\n  return iVar1;\n}\n\n" (function_definition "int FUN_0022cf10(void)\n\n{\n  int iVar1;\n  undefined4 in_a3;\n  undefined *puVar2;\n  code *pcVar3;\n  code *pcVar4;\n  \n  puVar2 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);\n  pcVar3 = *(code **)(puVar2 + 0x205480);\n  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);\n  pcVar4 = *(code **)(pcVar3 + 0x20544c);\n  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);\n  pcVar3 = *(code **)(pcVar4 + 0x205418);\n  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;\n  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);\n  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }\n  pcVar4 = *(code **)(pcVar3 + 0x2053e4);\n  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;\n  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }\n  iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);\n  return iVar1;\n}" primitive_type (function_declarator "FUN_0022cf10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 in_a3;\n  undefined *puVar2;\n  code *pcVar3;\n  code *pcVar4;\n  \n  puVar2 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);\n  pcVar3 = *(code **)(puVar2 + 0x205480);\n  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);\n  pcVar4 = *(code **)(pcVar3 + 0x20544c);\n  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);\n  pcVar3 = *(code **)(pcVar4 + 0x205418);\n  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;\n  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);\n  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }\n  pcVar4 = *(code **)(pcVar3 + 0x2053e4);\n  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;\n  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }\n  iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "puVar2 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar2 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a98" identifier + number_literal) ))) ;) (expression_statement "pcVar3 = *(code **)(puVar2 + 0x205480);" (assignment_expression "pcVar3 = *(code **)(puVar2 + 0x205480)" identifier = (pointer_expression "*(code **)(puVar2 + 0x205480)" * (cast_expression "(code **)(puVar2 + 0x205480)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x205480)" ( (binary_expression "puVar2 + 0x205480" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);" (call_expression "(*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c)" ( (binary_expression "*(int *)(puVar2 + 0x205470) + -0x5bdc" (pointer_expression "*(int *)(puVar2 + 0x205470)" * (cast_expression "(int *)(puVar2 + 0x205470)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x205470)" ( (binary_expression "puVar2 + 0x205470" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar2 + 0x205328) + -0x2d94" (pointer_expression "*(int *)(puVar2 + 0x205328)" * (cast_expression "(int *)(puVar2 + 0x205328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x205328)" ( (binary_expression "puVar2 + 0x205328" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "puVar2 + 0x20d28c" identifier + number_literal) ))) ;) (expression_statement "pcVar4 = *(code **)(pcVar3 + 0x20544c);" (assignment_expression "pcVar4 = *(code **)(pcVar3 + 0x20544c)" identifier = (pointer_expression "*(code **)(pcVar3 + 0x20544c)" * (cast_expression "(code **)(pcVar3 + 0x20544c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x20544c)" ( (binary_expression "pcVar3 + 0x20544c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);" (call_expression "(*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258)" ( (binary_expression "*(int *)(pcVar3 + 0x20543c) + -0x4fe0" (pointer_expression "*(int *)(pcVar3 + 0x20543c)" * (cast_expression "(int *)(pcVar3 + 0x20543c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x20543c)" ( (binary_expression "pcVar3 + 0x20543c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar3 + 0x2052f4) + -0x2e80" (pointer_expression "*(int *)(pcVar3 + 0x2052f4)" * (cast_expression "(int *)(pcVar3 + 0x2052f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x2052f4)" ( (binary_expression "pcVar3 + 0x2052f4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar3 + 0x20d258" identifier + number_literal) ))) ;) (expression_statement "pcVar3 = *(code **)(pcVar4 + 0x205418);" (assignment_expression "pcVar3 = *(code **)(pcVar4 + 0x205418)" identifier = (pointer_expression "*(code **)(pcVar4 + 0x205418)" * (cast_expression "(code **)(pcVar4 + 0x205418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205418)" ( (binary_expression "pcVar4 + 0x205418" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;" (assignment_expression "iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0" identifier = (binary_expression "*(int *)(pcVar4 + 0x205408) + -0x4fe0" (pointer_expression "*(int *)(pcVar4 + 0x205408)" * (cast_expression "(int *)(pcVar4 + 0x205408)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x205408)" ( (binary_expression "pcVar4 + 0x205408" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);" (call_expression "(*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar4 + 0x2052c0) + -0x2f70" (pointer_expression "*(int *)(pcVar4 + 0x2052c0)" * (cast_expression "(int *)(pcVar4 + 0x2052c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x2052c0)" ( (binary_expression "pcVar4 + 0x2052c0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar4 + 0x20d224" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0)" ( (binary_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0" (pointer_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar3 + 0x205c00) + 0xc)" ( (binary_expression "**(int **)(pcVar3 + 0x205c00) + 0xc" (pointer_expression "**(int **)(pcVar3 + 0x205c00)" * (pointer_expression "*(int **)(pcVar3 + 0x205c00)" * (cast_expression "(int **)(pcVar3 + 0x205c00)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x205c00)" ( (binary_expression "pcVar3 + 0x205c00" identifier + number_literal) ))))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }" { (expression_statement "(**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);" (call_expression "(**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0)" (parenthesized_expression "(**(code **)(pcVar3 + 0x2053e4))" ( (pointer_expression "**(code **)(pcVar3 + 0x2053e4)" * (pointer_expression "*(code **)(pcVar3 + 0x2053e4)" * (cast_expression "(code **)(pcVar3 + 0x2053e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x2053e4)" ( (binary_expression "pcVar3 + 0x2053e4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0)" ( (binary_expression "*(int *)(pcVar3 + 0x2053d4) + -0x5cec" (pointer_expression "*(int *)(pcVar3 + 0x2053d4)" * (cast_expression "(int *)(pcVar3 + 0x2053d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x2053d4)" ( (binary_expression "pcVar3 + 0x2053d4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar3 + 0x20528c) + -0x2a68" (pointer_expression "*(int *)(pcVar3 + 0x20528c)" * (cast_expression "(int *)(pcVar3 + 0x20528c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x20528c)" ( (binary_expression "pcVar3 + 0x20528c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar3 + 0x20d1f0" identifier + number_literal) ))) ;) }) (else_clause "else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }" else (if_statement "if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }" if (parenthesized_expression "(**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20)" ( (binary_expression "**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" ( (binary_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar3 + 0x205c00) + 0xc)" ( (binary_expression "**(int **)(pcVar3 + 0x205c00) + 0xc" (pointer_expression "**(int **)(pcVar3 + 0x205c00)" * (pointer_expression "*(int **)(pcVar3 + 0x205c00)" * (cast_expression "(int **)(pcVar3 + 0x205c00)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x205c00)" ( (binary_expression "pcVar3 + 0x205c00" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n    return iVar1;\n  }" { (return_statement "return iVar1;" return identifier ;) })))) (expression_statement "pcVar4 = *(code **)(pcVar3 + 0x2053e4);" (assignment_expression "pcVar4 = *(code **)(pcVar3 + 0x2053e4)" identifier = (pointer_expression "*(code **)(pcVar3 + 0x2053e4)" * (cast_expression "(code **)(pcVar3 + 0x2053e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x2053e4)" ( (binary_expression "pcVar3 + 0x2053e4" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;" (assignment_expression "iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc" identifier = (binary_expression "*(int *)(pcVar3 + 0x2053d4) + -0x5bdc" (pointer_expression "*(int *)(pcVar3 + 0x2053d4)" * (cast_expression "(int *)(pcVar3 + 0x2053d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x2053d4)" ( (binary_expression "pcVar3 + 0x2053d4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);" (call_expression "(*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar3 + 0x20528c) + -0x2b9c" (pointer_expression "*(int *)(pcVar3 + 0x20528c)" * (cast_expression "(int *)(pcVar3 + 0x20528c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x20528c)" ( (binary_expression "pcVar3 + 0x20528c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0)" ( (binary_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0" (pointer_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar4 + 0x205b80) + 0xc)" ( (binary_expression "**(int **)(pcVar4 + 0x205b80) + 0xc" (pointer_expression "**(int **)(pcVar4 + 0x205b80)" * (pointer_expression "*(int **)(pcVar4 + 0x205b80)" * (cast_expression "(int **)(pcVar4 + 0x205b80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205b80)" ( (binary_expression "pcVar4 + 0x205b80" identifier + number_literal) ))))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }" { (if_statement "if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }" if (parenthesized_expression "(**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40)" ( (binary_expression "**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40" (pointer_expression "**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" ( (binary_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar4 + 0x205b80) + 0xc)" ( (binary_expression "**(int **)(pcVar4 + 0x205b80) + 0xc" (pointer_expression "**(int **)(pcVar4 + 0x205b80)" * (pointer_expression "*(int **)(pcVar4 + 0x205b80)" * (cast_expression "(int **)(pcVar4 + 0x205b80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205b80)" ( (binary_expression "pcVar4 + 0x205b80" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n      return iVar1;\n    }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);" (assignment_expression "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30)" identifier = (call_expression "(**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30)" (parenthesized_expression "(**(code **)(pcVar4 + 0x205364))" ( (pointer_expression "**(code **)(pcVar4 + 0x205364)" * (pointer_expression "*(code **)(pcVar4 + 0x205364)" * (cast_expression "(code **)(pcVar4 + 0x205364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205364)" ( (binary_expression "pcVar4 + 0x205364" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30)" ( (binary_expression "*(int *)(pcVar4 + 0x205354) + -0x5bdc" (pointer_expression "*(int *)(pcVar4 + 0x205354)" * (cast_expression "(int *)(pcVar4 + 0x205354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x205354)" ( (binary_expression "pcVar4 + 0x205354" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar4 + 0x20520c) + -0x2c30" (pointer_expression "*(int *)(pcVar4 + 0x20520c)" * (cast_expression "(int *)(pcVar4 + 0x20520c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x20520c)" ( (binary_expression "pcVar4 + 0x20520c" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);" (assignment_expression "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170)" identifier = (call_expression "(**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170)" (parenthesized_expression "(**(code **)(pcVar4 + 0x205364))" ( (pointer_expression "**(code **)(pcVar4 + 0x205364)" * (pointer_expression "*(code **)(pcVar4 + 0x205364)" * (cast_expression "(code **)(pcVar4 + 0x205364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205364)" ( (binary_expression "pcVar4 + 0x205364" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170)" ( (binary_expression "*(int *)(pcVar4 + 0x205354) + -0x5cec" (pointer_expression "*(int *)(pcVar4 + 0x205354)" * (cast_expression "(int *)(pcVar4 + 0x205354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x205354)" ( (binary_expression "pcVar4 + 0x205354" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar4 + 0x20520c) + -0x2a68" (pointer_expression "*(int *)(pcVar4 + 0x20520c)" * (cast_expression "(int *)(pcVar4 + 0x20520c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x20520c)" ( (binary_expression "pcVar4 + 0x20520c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar4 + 0x20d170" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: bool doing_static_link(Parameters * this, Parameters * this) */\n\nbool __thiscall gold::Parameters::doing_static_link(Parameters *this,Parameters *this_1)\n\n{\n  uint uVar1;\n  undefined1 uVar3;\n  uint uVar2;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int in_a3;\n  uint unaff_s0;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  uint uStack_cc;\n  \n  puVar7 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_s__0043226c + -0x2a98);\n  pcVar8 = *(code **)(puVar7 + 0x205480);\n  (*pcVar8)(*(int *)(puVar7 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar7 + 0x205328) + -0x2d94);\n  pcVar9 = *(code **)(pcVar8 + 0x20544c);\n  (*pcVar9)(*(int *)(pcVar8 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar8 + 0x2052f4) + -0x2e80);\n  pcVar8 = *(code **)(pcVar9 + 0x205418);\n  iVar4 = *(int *)(pcVar9 + 0x205408) + -0x4fe0;\n  (*pcVar8)(iVar4,0xd81,*(int *)(pcVar9 + 0x2052c0) + -0x2f70);\n  if (*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar8 + 0x2053e4))\n              (*(int *)(pcVar8 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar8 + 0x20528c) + -0x2a68);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return SUB41(iVar4,0);\n  }\n  pcVar9 = *(code **)(pcVar8 + 0x2053e4);\n  iVar4 = *(int *)(pcVar8 + 0x2053d4) + -0x5bdc;\n  (*pcVar9)(iVar4,0x7f4,*(int *)(pcVar8 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) == 0) {\n    (**(code **)(pcVar9 + 0x205364))\n              (*(int *)(pcVar9 + 0x205354) + -0x5cec,0x69,*(int *)(pcVar9 + 0x20520c) + -0x2a68);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4) == 0x40) {\n    return SUB41(iVar4,0);\n  }\n  uVar6 = 0x7f4;\n  pcVar8 = *(code **)(pcVar9 + 0x205364);\n  iVar4 = *(int *)(pcVar9 + 0x20520c) + -0x2c30;\n  puVar5 = (undefined4 *)(*(int *)(pcVar9 + 0x205354) - 0x5bdc);\n  (*pcVar8)();\n  if (puVar5 < (undefined4 *)0x40000000) {\n    uVar6 = (**(code **)(pcVar8 + 0x20525c))((int)puVar5 << 2);\n    uVar3 = (**(code **)(pcVar8 + 0x209770))(uVar6,0,(int)puVar5 << 2);\n    return (bool)uVar3;\n  }\n  (**(code **)(pcVar8 + 0x205324))();\n  uVar2 = puVar5[10];\n  *puVar5 = uVar6;\n  puVar5[1] = iVar4;\n  *(byte *)(puVar5 + 0xb) = *(byte *)(puVar5 + 0xb) & 7;\n  puVar5[4] = 0;\n  puVar5[5] = 0;\n  puVar5[6] = 0xffffffff;\n  uVar1 = uVar2 & 0xffff;\n  puVar5[7] = 0xffffffff;\n  puVar5[8] = 0;\n  puVar5[10] = uVar1 | in_a3 << 0x1c | ((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18 |\n               (uStack_cc & 3) << 0x16 | (unaff_s0 & 0x3f) << 0x10;\n  puVar5[9] = 0;\n  *(ushort *)((int)puVar5 + 0x2a) = (ushort)uVar2 & 0xe040;\n  return SUB41(uVar1,0);\n}\n\n" comment comment comment comment comment comment comment (function_definition "bool __thiscall gold::Parameters::doing_static_link(Parameters *this,Parameters *this_1)\n\n{\n  uint uVar1;\n  undefined1 uVar3;\n  uint uVar2;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int in_a3;\n  uint unaff_s0;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  uint uStack_cc;\n  \n  puVar7 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_s__0043226c + -0x2a98);\n  pcVar8 = *(code **)(puVar7 + 0x205480);\n  (*pcVar8)(*(int *)(puVar7 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar7 + 0x205328) + -0x2d94);\n  pcVar9 = *(code **)(pcVar8 + 0x20544c);\n  (*pcVar9)(*(int *)(pcVar8 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar8 + 0x2052f4) + -0x2e80);\n  pcVar8 = *(code **)(pcVar9 + 0x205418);\n  iVar4 = *(int *)(pcVar9 + 0x205408) + -0x4fe0;\n  (*pcVar8)(iVar4,0xd81,*(int *)(pcVar9 + 0x2052c0) + -0x2f70);\n  if (*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar8 + 0x2053e4))\n              (*(int *)(pcVar8 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar8 + 0x20528c) + -0x2a68);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return SUB41(iVar4,0);\n  }\n  pcVar9 = *(code **)(pcVar8 + 0x2053e4);\n  iVar4 = *(int *)(pcVar8 + 0x2053d4) + -0x5bdc;\n  (*pcVar9)(iVar4,0x7f4,*(int *)(pcVar8 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) == 0) {\n    (**(code **)(pcVar9 + 0x205364))\n              (*(int *)(pcVar9 + 0x205354) + -0x5cec,0x69,*(int *)(pcVar9 + 0x20520c) + -0x2a68);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4) == 0x40) {\n    return SUB41(iVar4,0);\n  }\n  uVar6 = 0x7f4;\n  pcVar8 = *(code **)(pcVar9 + 0x205364);\n  iVar4 = *(int *)(pcVar9 + 0x20520c) + -0x2c30;\n  puVar5 = (undefined4 *)(*(int *)(pcVar9 + 0x205354) - 0x5bdc);\n  (*pcVar8)();\n  if (puVar5 < (undefined4 *)0x40000000) {\n    uVar6 = (**(code **)(pcVar8 + 0x20525c))((int)puVar5 << 2);\n    uVar3 = (**(code **)(pcVar8 + 0x209770))(uVar6,0,(int)puVar5 << 2);\n    return (bool)uVar3;\n  }\n  (**(code **)(pcVar8 + 0x205324))();\n  uVar2 = puVar5[10];\n  *puVar5 = uVar6;\n  puVar5[1] = iVar4;\n  *(byte *)(puVar5 + 0xb) = *(byte *)(puVar5 + 0xb) & 7;\n  puVar5[4] = 0;\n  puVar5[5] = 0;\n  puVar5[6] = 0xffffffff;\n  uVar1 = uVar2 & 0xffff;\n  puVar5[7] = 0xffffffff;\n  puVar5[8] = 0;\n  puVar5[10] = uVar1 | in_a3 << 0x1c | ((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18 |\n               (uStack_cc & 3) << 0x16 | (unaff_s0 & 0x3f) << 0x10;\n  puVar5[9] = 0;\n  *(ushort *)((int)puVar5 + 0x2a) = (ushort)uVar2 & 0xe040;\n  return SUB41(uVar1,0);\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Parameters::" identifier : : identifier : :) (function_declarator "doing_static_link(Parameters *this,Parameters *this_1)" identifier (parameter_list "(Parameters *this,Parameters *this_1)" ( (parameter_declaration "Parameters *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Parameters *this_1" type_identifier (pointer_declarator "*this_1" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined1 uVar3;\n  uint uVar2;\n  int iVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int in_a3;\n  uint unaff_s0;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  uint uStack_cc;\n  \n  puVar7 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_s__0043226c + -0x2a98);\n  pcVar8 = *(code **)(puVar7 + 0x205480);\n  (*pcVar8)(*(int *)(puVar7 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar7 + 0x205328) + -0x2d94);\n  pcVar9 = *(code **)(pcVar8 + 0x20544c);\n  (*pcVar9)(*(int *)(pcVar8 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar8 + 0x2052f4) + -0x2e80);\n  pcVar8 = *(code **)(pcVar9 + 0x205418);\n  iVar4 = *(int *)(pcVar9 + 0x205408) + -0x4fe0;\n  (*pcVar8)(iVar4,0xd81,*(int *)(pcVar9 + 0x2052c0) + -0x2f70);\n  if (*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar8 + 0x2053e4))\n              (*(int *)(pcVar8 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar8 + 0x20528c) + -0x2a68);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return SUB41(iVar4,0);\n  }\n  pcVar9 = *(code **)(pcVar8 + 0x2053e4);\n  iVar4 = *(int *)(pcVar8 + 0x2053d4) + -0x5bdc;\n  (*pcVar9)(iVar4,0x7f4,*(int *)(pcVar8 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) == 0) {\n    (**(code **)(pcVar9 + 0x205364))\n              (*(int *)(pcVar9 + 0x205354) + -0x5cec,0x69,*(int *)(pcVar9 + 0x20520c) + -0x2a68);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4) == 0x40) {\n    return SUB41(iVar4,0);\n  }\n  uVar6 = 0x7f4;\n  pcVar8 = *(code **)(pcVar9 + 0x205364);\n  iVar4 = *(int *)(pcVar9 + 0x20520c) + -0x2c30;\n  puVar5 = (undefined4 *)(*(int *)(pcVar9 + 0x205354) - 0x5bdc);\n  (*pcVar8)();\n  if (puVar5 < (undefined4 *)0x40000000) {\n    uVar6 = (**(code **)(pcVar8 + 0x20525c))((int)puVar5 << 2);\n    uVar3 = (**(code **)(pcVar8 + 0x209770))(uVar6,0,(int)puVar5 << 2);\n    return (bool)uVar3;\n  }\n  (**(code **)(pcVar8 + 0x205324))();\n  uVar2 = puVar5[10];\n  *puVar5 = uVar6;\n  puVar5[1] = iVar4;\n  *(byte *)(puVar5 + 0xb) = *(byte *)(puVar5 + 0xb) & 7;\n  puVar5[4] = 0;\n  puVar5[5] = 0;\n  puVar5[6] = 0xffffffff;\n  uVar1 = uVar2 & 0xffff;\n  puVar5[7] = 0xffffffff;\n  puVar5[8] = 0;\n  puVar5[10] = uVar1 | in_a3 << 0x1c | ((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18 |\n               (uStack_cc & 3) << 0x16 | (unaff_s0 & 0x3f) << 0x10;\n  puVar5[9] = 0;\n  *(ushort *)((int)puVar5 + 0x2a) = (ushort)uVar2 & 0xe040;\n  return SUB41(uVar1,0);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int in_a3;" primitive_type identifier ;) (declaration "uint unaff_s0;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uStack_cc;" type_identifier identifier ;) (expression_statement "puVar7 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar7 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_s__0043226c + -0x2a98);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_s__0043226c + -0x2a98)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_s__0043226c + -0x2a98)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_s__0043226c + -0x2a98" identifier + number_literal) ))) ;) (expression_statement "pcVar8 = *(code **)(puVar7 + 0x205480);" (assignment_expression "pcVar8 = *(code **)(puVar7 + 0x205480)" identifier = (pointer_expression "*(code **)(puVar7 + 0x205480)" * (cast_expression "(code **)(puVar7 + 0x205480)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x205480)" ( (binary_expression "puVar7 + 0x205480" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)(*(int *)(puVar7 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar7 + 0x205328) + -0x2d94);" (call_expression "(*pcVar8)(*(int *)(puVar7 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar7 + 0x205328) + -0x2d94)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(*(int *)(puVar7 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar7 + 0x205328) + -0x2d94)" ( (binary_expression "*(int *)(puVar7 + 0x205470) + -0x5bdc" (pointer_expression "*(int *)(puVar7 + 0x205470)" * (cast_expression "(int *)(puVar7 + 0x205470)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x205470)" ( (binary_expression "puVar7 + 0x205470" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar7 + 0x205328) + -0x2d94" (pointer_expression "*(int *)(puVar7 + 0x205328)" * (cast_expression "(int *)(puVar7 + 0x205328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x205328)" ( (binary_expression "puVar7 + 0x205328" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar9 = *(code **)(pcVar8 + 0x20544c);" (assignment_expression "pcVar9 = *(code **)(pcVar8 + 0x20544c)" identifier = (pointer_expression "*(code **)(pcVar8 + 0x20544c)" * (cast_expression "(code **)(pcVar8 + 0x20544c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x20544c)" ( (binary_expression "pcVar8 + 0x20544c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)(*(int *)(pcVar8 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar8 + 0x2052f4) + -0x2e80);" (call_expression "(*pcVar9)(*(int *)(pcVar8 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar8 + 0x2052f4) + -0x2e80)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(int *)(pcVar8 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar8 + 0x2052f4) + -0x2e80)" ( (binary_expression "*(int *)(pcVar8 + 0x20543c) + -0x4fe0" (pointer_expression "*(int *)(pcVar8 + 0x20543c)" * (cast_expression "(int *)(pcVar8 + 0x20543c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x20543c)" ( (binary_expression "pcVar8 + 0x20543c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar8 + 0x2052f4) + -0x2e80" (pointer_expression "*(int *)(pcVar8 + 0x2052f4)" * (cast_expression "(int *)(pcVar8 + 0x2052f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2052f4)" ( (binary_expression "pcVar8 + 0x2052f4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar8 = *(code **)(pcVar9 + 0x205418);" (assignment_expression "pcVar8 = *(code **)(pcVar9 + 0x205418)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x205418)" * (cast_expression "(code **)(pcVar9 + 0x205418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x205418)" ( (binary_expression "pcVar9 + 0x205418" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar9 + 0x205408) + -0x4fe0;" (assignment_expression "iVar4 = *(int *)(pcVar9 + 0x205408) + -0x4fe0" identifier = (binary_expression "*(int *)(pcVar9 + 0x205408) + -0x4fe0" (pointer_expression "*(int *)(pcVar9 + 0x205408)" * (cast_expression "(int *)(pcVar9 + 0x205408)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x205408)" ( (binary_expression "pcVar9 + 0x205408" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar8)(iVar4,0xd81,*(int *)(pcVar9 + 0x2052c0) + -0x2f70);" (call_expression "(*pcVar8)(iVar4,0xd81,*(int *)(pcVar9 + 0x2052c0) + -0x2f70)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(iVar4,0xd81,*(int *)(pcVar9 + 0x2052c0) + -0x2f70)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar9 + 0x2052c0) + -0x2f70" (pointer_expression "*(int *)(pcVar9 + 0x2052c0)" * (cast_expression "(int *)(pcVar9 + 0x2052c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2052c0)" ( (binary_expression "pcVar9 + 0x2052c0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar8 + 0x2053e4))\n              (*(int *)(pcVar8 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar8 + 0x20528c) + -0x2a68);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return SUB41(iVar4,0);\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) == 0)" ( (binary_expression "*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) == 0" (pointer_expression "*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar8 + 0x205c00) + 0xc)" ( (binary_expression "**(int **)(pcVar8 + 0x205c00) + 0xc" (pointer_expression "**(int **)(pcVar8 + 0x205c00)" * (pointer_expression "*(int **)(pcVar8 + 0x205c00)" * (cast_expression "(int **)(pcVar8 + 0x205c00)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x205c00)" ( (binary_expression "pcVar8 + 0x205c00" identifier + number_literal) ))))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar8 + 0x2053e4))\n              (*(int *)(pcVar8 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar8 + 0x20528c) + -0x2a68);\n  }" { (expression_statement "(**(code **)(pcVar8 + 0x2053e4))\n              (*(int *)(pcVar8 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar8 + 0x20528c) + -0x2a68);" (call_expression "(**(code **)(pcVar8 + 0x2053e4))\n              (*(int *)(pcVar8 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar8 + 0x20528c) + -0x2a68)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2053e4))" ( (pointer_expression "**(code **)(pcVar8 + 0x2053e4)" * (pointer_expression "*(code **)(pcVar8 + 0x2053e4)" * (cast_expression "(code **)(pcVar8 + 0x2053e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2053e4)" ( (binary_expression "pcVar8 + 0x2053e4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar8 + 0x20528c) + -0x2a68)" ( (binary_expression "*(int *)(pcVar8 + 0x2053d4) + -0x5cec" (pointer_expression "*(int *)(pcVar8 + 0x2053d4)" * (cast_expression "(int *)(pcVar8 + 0x2053d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2053d4)" ( (binary_expression "pcVar8 + 0x2053d4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar8 + 0x20528c) + -0x2a68" (pointer_expression "*(int *)(pcVar8 + 0x20528c)" * (cast_expression "(int *)(pcVar8 + 0x20528c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x20528c)" ( (binary_expression "pcVar8 + 0x20528c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else if (**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return SUB41(iVar4,0);\n  }" else (if_statement "if (**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return SUB41(iVar4,0);\n  }" if (parenthesized_expression "(**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4) == 0x20)" ( (binary_expression "**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4)" ( (binary_expression "*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar8 + 0x205c00) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar8 + 0x205c00) + 0xc)" ( (binary_expression "**(int **)(pcVar8 + 0x205c00) + 0xc" (pointer_expression "**(int **)(pcVar8 + 0x205c00)" * (pointer_expression "*(int **)(pcVar8 + 0x205c00)" * (cast_expression "(int **)(pcVar8 + 0x205c00)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x205c00)" ( (binary_expression "pcVar8 + 0x205c00" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n    return SUB41(iVar4,0);\n  }" { (return_statement "return SUB41(iVar4,0);" return (call_expression "SUB41(iVar4,0)" identifier (argument_list "(iVar4,0)" ( identifier , number_literal ))) ;) })))) (expression_statement "pcVar9 = *(code **)(pcVar8 + 0x2053e4);" (assignment_expression "pcVar9 = *(code **)(pcVar8 + 0x2053e4)" identifier = (pointer_expression "*(code **)(pcVar8 + 0x2053e4)" * (cast_expression "(code **)(pcVar8 + 0x2053e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2053e4)" ( (binary_expression "pcVar8 + 0x2053e4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar8 + 0x2053d4) + -0x5bdc;" (assignment_expression "iVar4 = *(int *)(pcVar8 + 0x2053d4) + -0x5bdc" identifier = (binary_expression "*(int *)(pcVar8 + 0x2053d4) + -0x5bdc" (pointer_expression "*(int *)(pcVar8 + 0x2053d4)" * (cast_expression "(int *)(pcVar8 + 0x2053d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2053d4)" ( (binary_expression "pcVar8 + 0x2053d4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar9)(iVar4,0x7f4,*(int *)(pcVar8 + 0x20528c) + -0x2b9c);" (call_expression "(*pcVar9)(iVar4,0x7f4,*(int *)(pcVar8 + 0x20528c) + -0x2b9c)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(iVar4,0x7f4,*(int *)(pcVar8 + 0x20528c) + -0x2b9c)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar8 + 0x20528c) + -0x2b9c" (pointer_expression "*(int *)(pcVar8 + 0x20528c)" * (cast_expression "(int *)(pcVar8 + 0x20528c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x20528c)" ( (binary_expression "pcVar8 + 0x20528c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) == 0) {\n    (**(code **)(pcVar9 + 0x205364))\n              (*(int *)(pcVar9 + 0x205354) + -0x5cec,0x69,*(int *)(pcVar9 + 0x20520c) + -0x2a68);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4) == 0x40) {\n    return SUB41(iVar4,0);\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) == 0)" ( (binary_expression "*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) == 0" (pointer_expression "*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar9 + 0x205b80) + 0xc)" ( (binary_expression "**(int **)(pcVar9 + 0x205b80) + 0xc" (pointer_expression "**(int **)(pcVar9 + 0x205b80)" * (pointer_expression "*(int **)(pcVar9 + 0x205b80)" * (cast_expression "(int **)(pcVar9 + 0x205b80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x205b80)" ( (binary_expression "pcVar9 + 0x205b80" identifier + number_literal) ))))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar9 + 0x205364))\n              (*(int *)(pcVar9 + 0x205354) + -0x5cec,0x69,*(int *)(pcVar9 + 0x20520c) + -0x2a68);\n  }" { (expression_statement "(**(code **)(pcVar9 + 0x205364))\n              (*(int *)(pcVar9 + 0x205354) + -0x5cec,0x69,*(int *)(pcVar9 + 0x20520c) + -0x2a68);" (call_expression "(**(code **)(pcVar9 + 0x205364))\n              (*(int *)(pcVar9 + 0x205354) + -0x5cec,0x69,*(int *)(pcVar9 + 0x20520c) + -0x2a68)" (parenthesized_expression "(**(code **)(pcVar9 + 0x205364))" ( (pointer_expression "**(code **)(pcVar9 + 0x205364)" * (pointer_expression "*(code **)(pcVar9 + 0x205364)" * (cast_expression "(code **)(pcVar9 + 0x205364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x205364)" ( (binary_expression "pcVar9 + 0x205364" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x205354) + -0x5cec,0x69,*(int *)(pcVar9 + 0x20520c) + -0x2a68)" ( (binary_expression "*(int *)(pcVar9 + 0x205354) + -0x5cec" (pointer_expression "*(int *)(pcVar9 + 0x205354)" * (cast_expression "(int *)(pcVar9 + 0x205354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x205354)" ( (binary_expression "pcVar9 + 0x205354" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar9 + 0x20520c) + -0x2a68" (pointer_expression "*(int *)(pcVar9 + 0x20520c)" * (cast_expression "(int *)(pcVar9 + 0x20520c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x20520c)" ( (binary_expression "pcVar9 + 0x20520c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else if (**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4) == 0x40) {\n    return SUB41(iVar4,0);\n  }" else (if_statement "if (**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4) == 0x40) {\n    return SUB41(iVar4,0);\n  }" if (parenthesized_expression "(**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4) == 0x40)" ( (binary_expression "**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4) == 0x40" (pointer_expression "**(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4)" ( (binary_expression "*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar9 + 0x205b80) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar9 + 0x205b80) + 0xc)" ( (binary_expression "**(int **)(pcVar9 + 0x205b80) + 0xc" (pointer_expression "**(int **)(pcVar9 + 0x205b80)" * (pointer_expression "*(int **)(pcVar9 + 0x205b80)" * (cast_expression "(int **)(pcVar9 + 0x205b80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x205b80)" ( (binary_expression "pcVar9 + 0x205b80" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n    return SUB41(iVar4,0);\n  }" { (return_statement "return SUB41(iVar4,0);" return (call_expression "SUB41(iVar4,0)" identifier (argument_list "(iVar4,0)" ( identifier , number_literal ))) ;) })))) (expression_statement "uVar6 = 0x7f4;" (assignment_expression "uVar6 = 0x7f4" identifier = number_literal) ;) (expression_statement "pcVar8 = *(code **)(pcVar9 + 0x205364);" (assignment_expression "pcVar8 = *(code **)(pcVar9 + 0x205364)" identifier = (pointer_expression "*(code **)(pcVar9 + 0x205364)" * (cast_expression "(code **)(pcVar9 + 0x205364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x205364)" ( (binary_expression "pcVar9 + 0x205364" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar9 + 0x20520c) + -0x2c30;" (assignment_expression "iVar4 = *(int *)(pcVar9 + 0x20520c) + -0x2c30" identifier = (binary_expression "*(int *)(pcVar9 + 0x20520c) + -0x2c30" (pointer_expression "*(int *)(pcVar9 + 0x20520c)" * (cast_expression "(int *)(pcVar9 + 0x20520c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x20520c)" ( (binary_expression "pcVar9 + 0x20520c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar5 = (undefined4 *)(*(int *)(pcVar9 + 0x205354) - 0x5bdc);" (assignment_expression "puVar5 = (undefined4 *)(*(int *)(pcVar9 + 0x205354) - 0x5bdc)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar9 + 0x205354) - 0x5bdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar9 + 0x205354) - 0x5bdc)" ( (binary_expression "*(int *)(pcVar9 + 0x205354) - 0x5bdc" (pointer_expression "*(int *)(pcVar9 + 0x205354)" * (cast_expression "(int *)(pcVar9 + 0x205354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x205354)" ( (binary_expression "pcVar9 + 0x205354" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (puVar5 < (undefined4 *)0x40000000) {\n    uVar6 = (**(code **)(pcVar8 + 0x20525c))((int)puVar5 << 2);\n    uVar3 = (**(code **)(pcVar8 + 0x209770))(uVar6,0,(int)puVar5 << 2);\n    return (bool)uVar3;\n  }" if (parenthesized_expression "(puVar5 < (undefined4 *)0x40000000)" ( (binary_expression "puVar5 < (undefined4 *)0x40000000" identifier < (cast_expression "(undefined4 *)0x40000000" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = (**(code **)(pcVar8 + 0x20525c))((int)puVar5 << 2);\n    uVar3 = (**(code **)(pcVar8 + 0x209770))(uVar6,0,(int)puVar5 << 2);\n    return (bool)uVar3;\n  }" { (expression_statement "uVar6 = (**(code **)(pcVar8 + 0x20525c))((int)puVar5 << 2);" (assignment_expression "uVar6 = (**(code **)(pcVar8 + 0x20525c))((int)puVar5 << 2)" identifier = (call_expression "(**(code **)(pcVar8 + 0x20525c))((int)puVar5 << 2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x20525c))" ( (pointer_expression "**(code **)(pcVar8 + 0x20525c)" * (pointer_expression "*(code **)(pcVar8 + 0x20525c)" * (cast_expression "(code **)(pcVar8 + 0x20525c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x20525c)" ( (binary_expression "pcVar8 + 0x20525c" identifier + number_literal) ))))) )) (argument_list "((int)puVar5 << 2)" ( (binary_expression "(int)puVar5 << 2" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "uVar3 = (**(code **)(pcVar8 + 0x209770))(uVar6,0,(int)puVar5 << 2);" (assignment_expression "uVar3 = (**(code **)(pcVar8 + 0x209770))(uVar6,0,(int)puVar5 << 2)" identifier = (call_expression "(**(code **)(pcVar8 + 0x209770))(uVar6,0,(int)puVar5 << 2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x209770))" ( (pointer_expression "**(code **)(pcVar8 + 0x209770)" * (pointer_expression "*(code **)(pcVar8 + 0x209770)" * (cast_expression "(code **)(pcVar8 + 0x209770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x209770)" ( (binary_expression "pcVar8 + 0x209770" identifier + number_literal) ))))) )) (argument_list "(uVar6,0,(int)puVar5 << 2)" ( identifier , number_literal , (binary_expression "(int)puVar5 << 2" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (return_statement "return (bool)uVar3;" return (cast_expression "(bool)uVar3" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (expression_statement "(**(code **)(pcVar8 + 0x205324))();" (call_expression "(**(code **)(pcVar8 + 0x205324))()" (parenthesized_expression "(**(code **)(pcVar8 + 0x205324))" ( (pointer_expression "**(code **)(pcVar8 + 0x205324)" * (pointer_expression "*(code **)(pcVar8 + 0x205324)" * (cast_expression "(code **)(pcVar8 + 0x205324)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x205324)" ( (binary_expression "pcVar8 + 0x205324" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = puVar5[10];" (assignment_expression "uVar2 = puVar5[10]" identifier = (subscript_expression "puVar5[10]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = uVar6;" (assignment_expression "*puVar5 = uVar6" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = iVar4;" (assignment_expression "puVar5[1] = iVar4" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(puVar5 + 0xb) = *(byte *)(puVar5 + 0xb) & 7;" (assignment_expression "*(byte *)(puVar5 + 0xb) = *(byte *)(puVar5 + 0xb) & 7" (pointer_expression "*(byte *)(puVar5 + 0xb)" * (cast_expression "(byte *)(puVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xb)" ( (binary_expression "puVar5 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 0xb) & 7" (pointer_expression "*(byte *)(puVar5 + 0xb)" * (cast_expression "(byte *)(puVar5 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xb)" ( (binary_expression "puVar5 + 0xb" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0;" (assignment_expression "puVar5[5] = 0" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar1 = uVar2 & 0xffff;" (assignment_expression "uVar1 = uVar2 & 0xffff" identifier = (binary_expression "uVar2 & 0xffff" identifier & number_literal)) ;) (expression_statement "puVar5[7] = 0xffffffff;" (assignment_expression "puVar5[7] = 0xffffffff" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = uVar1 | in_a3 << 0x1c | ((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18 |\n               (uStack_cc & 3) << 0x16 | (unaff_s0 & 0x3f) << 0x10;" (assignment_expression "puVar5[10] = uVar1 | in_a3 << 0x1c | ((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18 |\n               (uStack_cc & 3) << 0x16 | (unaff_s0 & 0x3f) << 0x10" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = (binary_expression "uVar1 | in_a3 << 0x1c | ((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18 |\n               (uStack_cc & 3) << 0x16 | (unaff_s0 & 0x3f) << 0x10" (binary_expression "uVar1 | in_a3 << 0x1c | ((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18 |\n               (uStack_cc & 3) << 0x16" (binary_expression "uVar1 | in_a3 << 0x1c | ((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18" (binary_expression "uVar1 | in_a3 << 0x1c" identifier | (binary_expression "in_a3 << 0x1c" identifier << number_literal)) | (binary_expression "((uint)(pcVar8 + 0x20d0f0) & 0xf) << 0x18" (parenthesized_expression "((uint)(pcVar8 + 0x20d0f0) & 0xf)" ( (binary_expression "(uint)(pcVar8 + 0x20d0f0) & 0xf" (call_expression "(uint)(pcVar8 + 0x20d0f0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar8 + 0x20d0f0)" ( (binary_expression "pcVar8 + 0x20d0f0" identifier + number_literal) ))) & number_literal) )) << number_literal)) | (binary_expression "(uStack_cc & 3) << 0x16" (parenthesized_expression "(uStack_cc & 3)" ( (binary_expression "uStack_cc & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(unaff_s0 & 0x3f) << 0x10" (parenthesized_expression "(unaff_s0 & 0x3f)" ( (binary_expression "unaff_s0 & 0x3f" identifier & number_literal) )) << number_literal))) ;) (expression_statement "puVar5[9] = 0;" (assignment_expression "puVar5[9] = 0" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(ushort *)((int)puVar5 + 0x2a) = (ushort)uVar2 & 0xe040;" (assignment_expression "*(ushort *)((int)puVar5 + 0x2a) = (ushort)uVar2 & 0xe040" (pointer_expression "*(ushort *)((int)puVar5 + 0x2a)" * (cast_expression "(ushort *)((int)puVar5 + 0x2a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 0x2a)" ( (binary_expression "(int)puVar5 + 0x2a" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(ushort)uVar2 & 0xe040" (cast_expression "(ushort)uVar2" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal)) ;) (return_statement "return SUB41(uVar1,0);" return (call_expression "SUB41(uVar1,0)" identifier (argument_list "(uVar1,0)" ( identifier , number_literal ))) ;) })))
(translation_unit "int FUN_0022cf10(void)\n\n{\n  int iVar1;\n  undefined4 in_a3;\n  undefined *puVar2;\n  code *pcVar3;\n  code *pcVar4;\n  \n  puVar2 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);\n  pcVar3 = *(code **)(puVar2 + 0x205480);\n  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);\n  pcVar4 = *(code **)(pcVar3 + 0x20544c);\n  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);\n  pcVar3 = *(code **)(pcVar4 + 0x205418);\n  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;\n  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);\n  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }\n  pcVar4 = *(code **)(pcVar3 + 0x2053e4);\n  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;\n  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }\n  iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);\n  return iVar1;\n}\n\n" (function_definition "int FUN_0022cf10(void)\n\n{\n  int iVar1;\n  undefined4 in_a3;\n  undefined *puVar2;\n  code *pcVar3;\n  code *pcVar4;\n  \n  puVar2 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);\n  pcVar3 = *(code **)(puVar2 + 0x205480);\n  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);\n  pcVar4 = *(code **)(pcVar3 + 0x20544c);\n  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);\n  pcVar3 = *(code **)(pcVar4 + 0x205418);\n  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;\n  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);\n  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }\n  pcVar4 = *(code **)(pcVar3 + 0x2053e4);\n  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;\n  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }\n  iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);\n  return iVar1;\n}" primitive_type (function_declarator "FUN_0022cf10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 in_a3;\n  undefined *puVar2;\n  code *pcVar3;\n  code *pcVar4;\n  \n  puVar2 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);\n  pcVar3 = *(code **)(puVar2 + 0x205480);\n  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);\n  pcVar4 = *(code **)(pcVar3 + 0x20544c);\n  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);\n  pcVar3 = *(code **)(pcVar4 + 0x205418);\n  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;\n  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);\n  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }\n  pcVar4 = *(code **)(pcVar3 + 0x2053e4);\n  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;\n  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }\n  iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "puVar2 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar2 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a98" identifier + number_literal) ))) ;) (expression_statement "pcVar3 = *(code **)(puVar2 + 0x205480);" (assignment_expression "pcVar3 = *(code **)(puVar2 + 0x205480)" identifier = (pointer_expression "*(code **)(puVar2 + 0x205480)" * (cast_expression "(code **)(puVar2 + 0x205480)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x205480)" ( (binary_expression "puVar2 + 0x205480" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);" (call_expression "(*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c)" ( (binary_expression "*(int *)(puVar2 + 0x205470) + -0x5bdc" (pointer_expression "*(int *)(puVar2 + 0x205470)" * (cast_expression "(int *)(puVar2 + 0x205470)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x205470)" ( (binary_expression "puVar2 + 0x205470" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar2 + 0x205328) + -0x2d94" (pointer_expression "*(int *)(puVar2 + 0x205328)" * (cast_expression "(int *)(puVar2 + 0x205328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x205328)" ( (binary_expression "puVar2 + 0x205328" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "puVar2 + 0x20d28c" identifier + number_literal) ))) ;) (expression_statement "pcVar4 = *(code **)(pcVar3 + 0x20544c);" (assignment_expression "pcVar4 = *(code **)(pcVar3 + 0x20544c)" identifier = (pointer_expression "*(code **)(pcVar3 + 0x20544c)" * (cast_expression "(code **)(pcVar3 + 0x20544c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x20544c)" ( (binary_expression "pcVar3 + 0x20544c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);" (call_expression "(*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258)" ( (binary_expression "*(int *)(pcVar3 + 0x20543c) + -0x4fe0" (pointer_expression "*(int *)(pcVar3 + 0x20543c)" * (cast_expression "(int *)(pcVar3 + 0x20543c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x20543c)" ( (binary_expression "pcVar3 + 0x20543c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar3 + 0x2052f4) + -0x2e80" (pointer_expression "*(int *)(pcVar3 + 0x2052f4)" * (cast_expression "(int *)(pcVar3 + 0x2052f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x2052f4)" ( (binary_expression "pcVar3 + 0x2052f4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar3 + 0x20d258" identifier + number_literal) ))) ;) (expression_statement "pcVar3 = *(code **)(pcVar4 + 0x205418);" (assignment_expression "pcVar3 = *(code **)(pcVar4 + 0x205418)" identifier = (pointer_expression "*(code **)(pcVar4 + 0x205418)" * (cast_expression "(code **)(pcVar4 + 0x205418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205418)" ( (binary_expression "pcVar4 + 0x205418" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;" (assignment_expression "iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0" identifier = (binary_expression "*(int *)(pcVar4 + 0x205408) + -0x4fe0" (pointer_expression "*(int *)(pcVar4 + 0x205408)" * (cast_expression "(int *)(pcVar4 + 0x205408)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x205408)" ( (binary_expression "pcVar4 + 0x205408" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);" (call_expression "(*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar4 + 0x2052c0) + -0x2f70" (pointer_expression "*(int *)(pcVar4 + 0x2052c0)" * (cast_expression "(int *)(pcVar4 + 0x2052c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x2052c0)" ( (binary_expression "pcVar4 + 0x2052c0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar4 + 0x20d224" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0)" ( (binary_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0" (pointer_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar3 + 0x205c00) + 0xc)" ( (binary_expression "**(int **)(pcVar3 + 0x205c00) + 0xc" (pointer_expression "**(int **)(pcVar3 + 0x205c00)" * (pointer_expression "*(int **)(pcVar3 + 0x205c00)" * (cast_expression "(int **)(pcVar3 + 0x205c00)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x205c00)" ( (binary_expression "pcVar3 + 0x205c00" identifier + number_literal) ))))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }" { (expression_statement "(**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);" (call_expression "(**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0)" (parenthesized_expression "(**(code **)(pcVar3 + 0x2053e4))" ( (pointer_expression "**(code **)(pcVar3 + 0x2053e4)" * (pointer_expression "*(code **)(pcVar3 + 0x2053e4)" * (cast_expression "(code **)(pcVar3 + 0x2053e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x2053e4)" ( (binary_expression "pcVar3 + 0x2053e4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0)" ( (binary_expression "*(int *)(pcVar3 + 0x2053d4) + -0x5cec" (pointer_expression "*(int *)(pcVar3 + 0x2053d4)" * (cast_expression "(int *)(pcVar3 + 0x2053d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x2053d4)" ( (binary_expression "pcVar3 + 0x2053d4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar3 + 0x20528c) + -0x2a68" (pointer_expression "*(int *)(pcVar3 + 0x20528c)" * (cast_expression "(int *)(pcVar3 + 0x20528c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x20528c)" ( (binary_expression "pcVar3 + 0x20528c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar3 + 0x20d1f0" identifier + number_literal) ))) ;) }) (else_clause "else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }" else (if_statement "if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }" if (parenthesized_expression "(**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20)" ( (binary_expression "**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" ( (binary_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar3 + 0x205c00) + 0xc)" ( (binary_expression "**(int **)(pcVar3 + 0x205c00) + 0xc" (pointer_expression "**(int **)(pcVar3 + 0x205c00)" * (pointer_expression "*(int **)(pcVar3 + 0x205c00)" * (cast_expression "(int **)(pcVar3 + 0x205c00)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x205c00)" ( (binary_expression "pcVar3 + 0x205c00" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n    return iVar1;\n  }" { (return_statement "return iVar1;" return identifier ;) })))) (expression_statement "pcVar4 = *(code **)(pcVar3 + 0x2053e4);" (assignment_expression "pcVar4 = *(code **)(pcVar3 + 0x2053e4)" identifier = (pointer_expression "*(code **)(pcVar3 + 0x2053e4)" * (cast_expression "(code **)(pcVar3 + 0x2053e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar3 + 0x2053e4)" ( (binary_expression "pcVar3 + 0x2053e4" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;" (assignment_expression "iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc" identifier = (binary_expression "*(int *)(pcVar3 + 0x2053d4) + -0x5bdc" (pointer_expression "*(int *)(pcVar3 + 0x2053d4)" * (cast_expression "(int *)(pcVar3 + 0x2053d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x2053d4)" ( (binary_expression "pcVar3 + 0x2053d4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);" (call_expression "(*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar3 + 0x20528c) + -0x2b9c" (pointer_expression "*(int *)(pcVar3 + 0x20528c)" * (cast_expression "(int *)(pcVar3 + 0x20528c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar3 + 0x20528c)" ( (binary_expression "pcVar3 + 0x20528c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0)" ( (binary_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0" (pointer_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar4 + 0x205b80) + 0xc)" ( (binary_expression "**(int **)(pcVar4 + 0x205b80) + 0xc" (pointer_expression "**(int **)(pcVar4 + 0x205b80)" * (pointer_expression "*(int **)(pcVar4 + 0x205b80)" * (cast_expression "(int **)(pcVar4 + 0x205b80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205b80)" ( (binary_expression "pcVar4 + 0x205b80" identifier + number_literal) ))))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }" { (if_statement "if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }" if (parenthesized_expression "(**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40)" ( (binary_expression "**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40" (pointer_expression "**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" ( (binary_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar4 + 0x205b80) + 0xc)" ( (binary_expression "**(int **)(pcVar4 + 0x205b80) + 0xc" (pointer_expression "**(int **)(pcVar4 + 0x205b80)" * (pointer_expression "*(int **)(pcVar4 + 0x205b80)" * (cast_expression "(int **)(pcVar4 + 0x205b80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205b80)" ( (binary_expression "pcVar4 + 0x205b80" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n      return iVar1;\n    }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);" (assignment_expression "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30)" identifier = (call_expression "(**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30)" (parenthesized_expression "(**(code **)(pcVar4 + 0x205364))" ( (pointer_expression "**(code **)(pcVar4 + 0x205364)" * (pointer_expression "*(code **)(pcVar4 + 0x205364)" * (cast_expression "(code **)(pcVar4 + 0x205364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205364)" ( (binary_expression "pcVar4 + 0x205364" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30)" ( (binary_expression "*(int *)(pcVar4 + 0x205354) + -0x5bdc" (pointer_expression "*(int *)(pcVar4 + 0x205354)" * (cast_expression "(int *)(pcVar4 + 0x205354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x205354)" ( (binary_expression "pcVar4 + 0x205354" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar4 + 0x20520c) + -0x2c30" (pointer_expression "*(int *)(pcVar4 + 0x20520c)" * (cast_expression "(int *)(pcVar4 + 0x20520c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x20520c)" ( (binary_expression "pcVar4 + 0x20520c" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);" (assignment_expression "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170)" identifier = (call_expression "(**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170)" (parenthesized_expression "(**(code **)(pcVar4 + 0x205364))" ( (pointer_expression "**(code **)(pcVar4 + 0x205364)" * (pointer_expression "*(code **)(pcVar4 + 0x205364)" * (cast_expression "(code **)(pcVar4 + 0x205364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x205364)" ( (binary_expression "pcVar4 + 0x205364" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170)" ( (binary_expression "*(int *)(pcVar4 + 0x205354) + -0x5cec" (pointer_expression "*(int *)(pcVar4 + 0x205354)" * (cast_expression "(int *)(pcVar4 + 0x205354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x205354)" ( (binary_expression "pcVar4 + 0x205354" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar4 + 0x20520c) + -0x2a68" (pointer_expression "*(int *)(pcVar4 + 0x20520c)" * (cast_expression "(int *)(pcVar4 + 0x20520c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x20520c)" ( (binary_expression "pcVar4 + 0x20520c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar4 + 0x20d170" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) + LIT) ))))) == LIT) )) (compound_statement { (return_statement return IDENT ;) })))) (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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) + LIT) ))))) == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })))
(function_definition "int FUN_0022cf10(void)\n\n{\n  int iVar1;\n  undefined4 in_a3;\n  undefined *puVar2;\n  code *pcVar3;\n  code *pcVar4;\n  \n  puVar2 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);\n  pcVar3 = *(code **)(puVar2 + 0x205480);\n  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);\n  pcVar4 = *(code **)(pcVar3 + 0x20544c);\n  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);\n  pcVar3 = *(code **)(pcVar4 + 0x205418);\n  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;\n  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);\n  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }\n  pcVar4 = *(code **)(pcVar3 + 0x2053e4);\n  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;\n  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }\n  iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);\n  return iVar1;\n}" (primitive_type "int") (function_declarator "FUN_0022cf10(void)" (identifier "FUN_0022cf10") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 in_a3;\n  undefined *puVar2;\n  code *pcVar3;\n  code *pcVar4;\n  \n  puVar2 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);\n  pcVar3 = *(code **)(puVar2 + 0x205480);\n  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);\n  pcVar4 = *(code **)(pcVar3 + 0x20544c);\n  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);\n  pcVar3 = *(code **)(pcVar4 + 0x205418);\n  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;\n  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);\n  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }\n  pcVar4 = *(code **)(pcVar3 + 0x2053e4);\n  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;\n  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);\n  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }\n  iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);\n  return iVar1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 in_a3;" (type_identifier "undefined4") (identifier "in_a3") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (expression_statement "puVar2 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar2 = PTR_do_gold_unreachable_004323c4" (identifier "puVar2") (= "=") (identifier "PTR_do_gold_unreachable_004323c4")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x82") (, ",") (binary_expression "PTR_DAT_0043226c + -0x2a98" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x2a98")) () ")"))) (; ";")) (expression_statement "pcVar3 = *(code **)(puVar2 + 0x205480);" (assignment_expression "pcVar3 = *(code **)(puVar2 + 0x205480)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(puVar2 + 0x205480)" (* "*") (cast_expression "(code **)(puVar2 + 0x205480)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x205480)" (( "(") (binary_expression "puVar2 + 0x205480" (identifier "puVar2") (+ "+") (number_literal "0x205480")) () ")"))))) (; ";")) (expression_statement "(*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c);" (call_expression "(*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c)" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,\n            puVar2 + 0x20d28c)" (( "(") (binary_expression "*(int *)(puVar2 + 0x205470) + -0x5bdc" (pointer_expression "*(int *)(puVar2 + 0x205470)" (* "*") (cast_expression "(int *)(puVar2 + 0x205470)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x205470)" (( "(") (binary_expression "puVar2 + 0x205470" (identifier "puVar2") (+ "+") (number_literal "0x205470")) () ")")))) (+ "+") (number_literal "-0x5bdc")) (, ",") (number_literal "0x19a") (, ",") (binary_expression "*(int *)(puVar2 + 0x205328) + -0x2d94" (pointer_expression "*(int *)(puVar2 + 0x205328)" (* "*") (cast_expression "(int *)(puVar2 + 0x205328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x205328)" (( "(") (binary_expression "puVar2 + 0x205328" (identifier "puVar2") (+ "+") (number_literal "0x205328")) () ")")))) (+ "+") (number_literal "-0x2d94")) (, ",") (identifier "in_a3") (, ",") (binary_expression "puVar2 + 0x20d28c" (identifier "puVar2") (+ "+") (number_literal "0x20d28c")) () ")"))) (; ";")) (expression_statement "pcVar4 = *(code **)(pcVar3 + 0x20544c);" (assignment_expression "pcVar4 = *(code **)(pcVar3 + 0x20544c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(pcVar3 + 0x20544c)" (* "*") (cast_expression "(code **)(pcVar3 + 0x20544c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar3 + 0x20544c)" (( "(") (binary_expression "pcVar3 + 0x20544c" (identifier "pcVar3") (+ "+") (number_literal "0x20544c")) () ")"))))) (; ";")) (expression_statement "(*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258);" (call_expression "(*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,\n            pcVar3 + 0x20d258)" (( "(") (binary_expression "*(int *)(pcVar3 + 0x20543c) + -0x4fe0" (pointer_expression "*(int *)(pcVar3 + 0x20543c)" (* "*") (cast_expression "(int *)(pcVar3 + 0x20543c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 0x20543c)" (( "(") (binary_expression "pcVar3 + 0x20543c" (identifier "pcVar3") (+ "+") (number_literal "0x20543c")) () ")")))) (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0x6f") (, ",") (binary_expression "*(int *)(pcVar3 + 0x2052f4) + -0x2e80" (pointer_expression "*(int *)(pcVar3 + 0x2052f4)" (* "*") (cast_expression "(int *)(pcVar3 + 0x2052f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 0x2052f4)" (( "(") (binary_expression "pcVar3 + 0x2052f4" (identifier "pcVar3") (+ "+") (number_literal "0x2052f4")) () ")")))) (+ "+") (number_literal "-0x2e80")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar3 + 0x20d258" (identifier "pcVar3") (+ "+") (number_literal "0x20d258")) () ")"))) (; ";")) (expression_statement "pcVar3 = *(code **)(pcVar4 + 0x205418);" (assignment_expression "pcVar3 = *(code **)(pcVar4 + 0x205418)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(pcVar4 + 0x205418)" (* "*") (cast_expression "(code **)(pcVar4 + 0x205418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0x205418)" (( "(") (binary_expression "pcVar4 + 0x205418" (identifier "pcVar4") (+ "+") (number_literal "0x205418")) () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;" (assignment_expression "iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0" (identifier "iVar1") (= "=") (binary_expression "*(int *)(pcVar4 + 0x205408) + -0x4fe0" (pointer_expression "*(int *)(pcVar4 + 0x205408)" (* "*") (cast_expression "(int *)(pcVar4 + 0x205408)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x205408)" (( "(") (binary_expression "pcVar4 + 0x205408" (identifier "pcVar4") (+ "+") (number_literal "0x205408")) () ")")))) (+ "+") (number_literal "-0x4fe0"))) (; ";")) (expression_statement "(*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);" (call_expression "(*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224)" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224)" (( "(") (identifier "iVar1") (, ",") (number_literal "0xd81") (, ",") (binary_expression "*(int *)(pcVar4 + 0x2052c0) + -0x2f70" (pointer_expression "*(int *)(pcVar4 + 0x2052c0)" (* "*") (cast_expression "(int *)(pcVar4 + 0x2052c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x2052c0)" (( "(") (binary_expression "pcVar4 + 0x2052c0" (identifier "pcVar4") (+ "+") (number_literal "0x2052c0")) () ")")))) (+ "+") (number_literal "-0x2f70")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar4 + 0x20d224" (identifier "pcVar4") (+ "+") (number_literal "0x20d224")) () ")"))) (; ";")) (if_statement "if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }\n  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0)" (( "(") (binary_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0" (pointer_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" (* "*") (cast_expression "(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar3 + 0x205c00) + 0xc)" (( "(") (binary_expression "**(int **)(pcVar3 + 0x205c00) + 0xc" (pointer_expression "**(int **)(pcVar3 + 0x205c00)" (* "*") (pointer_expression "*(int **)(pcVar3 + 0x205c00)" (* "*") (cast_expression "(int **)(pcVar3 + 0x205c00)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar3 + 0x205c00)" (( "(") (binary_expression "pcVar3 + 0x205c00" (identifier "pcVar3") (+ "+") (number_literal "0x205c00")) () ")"))))) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0);" (call_expression "(**(code **)(pcVar3 + 0x2053e4))\n              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0)" (parenthesized_expression "(**(code **)(pcVar3 + 0x2053e4))" (( "(") (pointer_expression "**(code **)(pcVar3 + 0x2053e4)" (* "*") (pointer_expression "*(code **)(pcVar3 + 0x2053e4)" (* "*") (cast_expression "(code **)(pcVar3 + 0x2053e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar3 + 0x2053e4)" (( "(") (binary_expression "pcVar3 + 0x2053e4" (identifier "pcVar3") (+ "+") (number_literal "0x2053e4")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,\n               in_a3,pcVar3 + 0x20d1f0)" (( "(") (binary_expression "*(int *)(pcVar3 + 0x2053d4) + -0x5cec" (pointer_expression "*(int *)(pcVar3 + 0x2053d4)" (* "*") (cast_expression "(int *)(pcVar3 + 0x2053d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 0x2053d4)" (( "(") (binary_expression "pcVar3 + 0x2053d4" (identifier "pcVar3") (+ "+") (number_literal "0x2053d4")) () ")")))) (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x69") (, ",") (binary_expression "*(int *)(pcVar3 + 0x20528c) + -0x2a68" (pointer_expression "*(int *)(pcVar3 + 0x20528c)" (* "*") (cast_expression "(int *)(pcVar3 + 0x20528c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 0x20528c)" (( "(") (binary_expression "pcVar3 + 0x20528c" (identifier "pcVar3") (+ "+") (number_literal "0x20528c")) () ")")))) (+ "+") (number_literal "-0x2a68")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar3 + 0x20d1f0" (identifier "pcVar3") (+ "+") (number_literal "0x20d1f0")) () ")"))) (; ";")) (} "}")) (else_clause "else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }" (else "else") (if_statement "if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20)" (( "(") (binary_expression "**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4)" (( "(") (binary_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" (* "*") (cast_expression "(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar3 + 0x205c00) + 0xc)" (( "(") (binary_expression "**(int **)(pcVar3 + 0x205c00) + 0xc" (pointer_expression "**(int **)(pcVar3 + 0x205c00)" (* "*") (pointer_expression "*(int **)(pcVar3 + 0x205c00)" (* "*") (cast_expression "(int **)(pcVar3 + 0x205c00)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar3 + 0x205c00)" (( "(") (binary_expression "pcVar3 + 0x205c00" (identifier "pcVar3") (+ "+") (number_literal "0x205c00")) () ")"))))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    return iVar1;\n  }" ({ "{") (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))))) (expression_statement "pcVar4 = *(code **)(pcVar3 + 0x2053e4);" (assignment_expression "pcVar4 = *(code **)(pcVar3 + 0x2053e4)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(pcVar3 + 0x2053e4)" (* "*") (cast_expression "(code **)(pcVar3 + 0x2053e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar3 + 0x2053e4)" (( "(") (binary_expression "pcVar3 + 0x2053e4" (identifier "pcVar3") (+ "+") (number_literal "0x2053e4")) () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;" (assignment_expression "iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc" (identifier "iVar1") (= "=") (binary_expression "*(int *)(pcVar3 + 0x2053d4) + -0x5bdc" (pointer_expression "*(int *)(pcVar3 + 0x2053d4)" (* "*") (cast_expression "(int *)(pcVar3 + 0x2053d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 0x2053d4)" (( "(") (binary_expression "pcVar3 + 0x2053d4" (identifier "pcVar3") (+ "+") (number_literal "0x2053d4")) () ")")))) (+ "+") (number_literal "-0x5bdc"))) (; ";")) (expression_statement "(*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);" (call_expression "(*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c)" (( "(") (identifier "iVar1") (, ",") (number_literal "0x7f4") (, ",") (binary_expression "*(int *)(pcVar3 + 0x20528c) + -0x2b9c" (pointer_expression "*(int *)(pcVar3 + 0x20528c)" (* "*") (cast_expression "(int *)(pcVar3 + 0x20528c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar3 + 0x20528c)" (( "(") (binary_expression "pcVar3 + 0x20528c" (identifier "pcVar3") (+ "+") (number_literal "0x20528c")) () ")")))) (+ "+") (number_literal "-0x2b9c")) () ")"))) (; ";")) (if_statement "if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0)" (( "(") (binary_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0" (pointer_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" (* "*") (cast_expression "(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar4 + 0x205b80) + 0xc)" (( "(") (binary_expression "**(int **)(pcVar4 + 0x205b80) + 0xc" (pointer_expression "**(int **)(pcVar4 + 0x205b80)" (* "*") (pointer_expression "*(int **)(pcVar4 + 0x205b80)" (* "*") (cast_expression "(int **)(pcVar4 + 0x205b80)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0x205b80)" (( "(") (binary_expression "pcVar4 + 0x205b80" (identifier "pcVar4") (+ "+") (number_literal "0x205b80")) () ")"))))) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }\n    iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);\n    return iVar1;\n  }" ({ "{") (if_statement "if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {\n      return iVar1;\n    }" (if "if") (parenthesized_expression "(**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40)" (( "(") (binary_expression "**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40" (pointer_expression "**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4)" (( "(") (binary_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" (* "*") (cast_expression "(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(pcVar4 + 0x205b80) + 0xc)" (( "(") (binary_expression "**(int **)(pcVar4 + 0x205b80) + 0xc" (pointer_expression "**(int **)(pcVar4 + 0x205b80)" (* "*") (pointer_expression "*(int **)(pcVar4 + 0x205b80)" (* "*") (cast_expression "(int **)(pcVar4 + 0x205b80)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0x205b80)" (( "(") (binary_expression "pcVar4 + 0x205b80" (identifier "pcVar4") (+ "+") (number_literal "0x205b80")) () ")"))))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n      return iVar1;\n    }" ({ "{") (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);" (assignment_expression "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(pcVar4 + 0x205364))\n                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30)" (parenthesized_expression "(**(code **)(pcVar4 + 0x205364))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0x205364)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0x205364)" (* "*") (cast_expression "(code **)(pcVar4 + 0x205364)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0x205364)" (( "(") (binary_expression "pcVar4 + 0x205364" (identifier "pcVar4") (+ "+") (number_literal "0x205364")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,\n                       *(int *)(pcVar4 + 0x20520c) + -0x2c30)" (( "(") (binary_expression "*(int *)(pcVar4 + 0x205354) + -0x5bdc" (pointer_expression "*(int *)(pcVar4 + 0x205354)" (* "*") (cast_expression "(int *)(pcVar4 + 0x205354)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x205354)" (( "(") (binary_expression "pcVar4 + 0x205354" (identifier "pcVar4") (+ "+") (number_literal "0x205354")) () ")")))) (+ "+") (number_literal "-0x5bdc")) (, ",") (number_literal "0x7f4") (, ",") (binary_expression "*(int *)(pcVar4 + 0x20520c) + -0x2c30" (pointer_expression "*(int *)(pcVar4 + 0x20520c)" (* "*") (cast_expression "(int *)(pcVar4 + 0x20520c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x20520c)" (( "(") (binary_expression "pcVar4 + 0x20520c" (identifier "pcVar4") (+ "+") (number_literal "0x20520c")) () ")")))) (+ "+") (number_literal "-0x2c30")) () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);" (assignment_expression "iVar1 = (**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(pcVar4 + 0x205364))\n                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170)" (parenthesized_expression "(**(code **)(pcVar4 + 0x205364))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0x205364)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0x205364)" (* "*") (cast_expression "(code **)(pcVar4 + 0x205364)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0x205364)" (( "(") (binary_expression "pcVar4 + 0x205364" (identifier "pcVar4") (+ "+") (number_literal "0x205364")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,\n                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170)" (( "(") (binary_expression "*(int *)(pcVar4 + 0x205354) + -0x5cec" (pointer_expression "*(int *)(pcVar4 + 0x205354)" (* "*") (cast_expression "(int *)(pcVar4 + 0x205354)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x205354)" (( "(") (binary_expression "pcVar4 + 0x205354" (identifier "pcVar4") (+ "+") (number_literal "0x205354")) () ")")))) (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x69") (, ",") (binary_expression "*(int *)(pcVar4 + 0x20520c) + -0x2a68" (pointer_expression "*(int *)(pcVar4 + 0x20520c)" (* "*") (cast_expression "(int *)(pcVar4 + 0x20520c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x20520c)" (( "(") (binary_expression "pcVar4 + 0x20520c" (identifier "pcVar4") (+ "+") (number_literal "0x20520c")) () ")")))) (+ "+") (number_literal "-0x2a68")) (, ",") (identifier "in_a3") (, ",") (binary_expression "pcVar4 + 0x20d170" (identifier "pcVar4") (+ "+") (number_literal "0x20d170")) () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: bool doing_static_link(Parameters * this, Parameters * this) */

bool __thiscall gold::type_1::function_1(type_1 *this,type_1 *this_1)

{
  type_2 var_9;
  type_3 uVar3;
  type_2 var_8;
  int iVar4;
  type_4 *var_7;
  type_4 uVar6;
  int var_10;
  type_2 var_12;
  type_5 *var_3;
  type_6 *var_4;
  type_6 *var_5;
  type_2 var_11;
  
  var_3 = PTR_do_gold_unreachable_004323c4;
  (*(type_6 *)PTR_do_gold_unreachable_004323c4)
            (var_1 + -0x5cec,0x82,var_2 + -0x2a98);
  var_4 = *(type_6 **)(var_3 + 0x205480);
  (*var_4)(*(int *)(var_3 + 0x205470) + -0x5bdc,0x19a,*(int *)(var_3 + 0x205328) + -0x2d94);
  var_5 = *(type_6 **)(var_4 + 0x20544c);
  (*var_5)(*(int *)(var_4 + 0x20543c) + -0x4fe0,0x6f,*(int *)(var_4 + 0x2052f4) + -0x2e80);
  var_4 = *(type_6 **)(var_5 + 0x205418);
  iVar4 = *(int *)(var_5 + 0x205408) + -0x4fe0;
  (*var_4)(iVar4,0xd81,*(int *)(var_5 + 0x2052c0) + -0x2f70);
  if (*(int *)(**(int **)(var_4 + 0x205c00) + 0xc) == 0) {
    (**(type_6 **)(var_4 + 0x2053e4))
              (*(int *)(var_4 + 0x2053d4) + -0x5cec,0x69,*(int *)(var_4 + 0x20528c) + -0x2a68);
  }
  else if (**(int **)(*(int *)(**(int **)(var_4 + 0x205c00) + 0xc) + 4) == 0x20) {
    return var_6(iVar4,0);
  }
  var_5 = *(type_6 **)(var_4 + 0x2053e4);
  iVar4 = *(int *)(var_4 + 0x2053d4) + -0x5bdc;
  (*var_5)(iVar4,0x7f4,*(int *)(var_4 + 0x20528c) + -0x2b9c);
  if (*(int *)(**(int **)(var_5 + 0x205b80) + 0xc) == 0) {
    (**(type_6 **)(var_5 + 0x205364))
              (*(int *)(var_5 + 0x205354) + -0x5cec,0x69,*(int *)(var_5 + 0x20520c) + -0x2a68);
  }
  else if (**(int **)(*(int *)(**(int **)(var_5 + 0x205b80) + 0xc) + 4) == 0x40) {
    return var_6(iVar4,0);
  }
  uVar6 = 0x7f4;
  var_4 = *(type_6 **)(var_5 + 0x205364);
  iVar4 = *(int *)(var_5 + 0x20520c) + -0x2c30;
  var_7 = (type_4 *)(*(int *)(var_5 + 0x205354) - 0x5bdc);
  (*var_4)();
  if (var_7 < (type_4 *)0x40000000) {
    uVar6 = (**(type_6 **)(var_4 + 0x20525c))((int)var_7 << 2);
    uVar3 = (**(type_6 **)(var_4 + 0x209770))(uVar6,0,(int)var_7 << 2);
    return (bool)uVar3;
  }
  (**(type_6 **)(var_4 + 0x205324))();
  var_8 = var_7[10];
  *var_7 = uVar6;
  var_7[1] = iVar4;
  *(type_7 *)(var_7 + 0xb) = *(type_7 *)(var_7 + 0xb) & 7;
  var_7[4] = 0;
  var_7[5] = 0;
  var_7[6] = 0xffffffff;
  var_9 = var_8 & 0xffff;
  var_7[7] = 0xffffffff;
  var_7[8] = 0;
  var_7[10] = var_9 | var_10 << 0x1c | ((type_2)(var_4 + 0x20d0f0) & 0xf) << 0x18 |
               (var_11 & 3) << 0x16 | (var_12 & 0x3f) << 0x10;
  var_7[9] = 0;
  *(type_8 *)((int)var_7 + 0x2a) = (type_8)var_8 & 0xe040;
  return var_6(var_9,0);
}


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

int MASKED(void)

{
  int iVar1;
  undefined4 in_a3;
  undefined *puVar2;
  code *pcVar3;
  code *pcVar4;
  
  puVar2 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_s_alize_xindex_004323b4 + -0x5cec,0x82,PTR_DAT_0043226c + -0x2a98);
  pcVar3 = *(code **)(puVar2 + 0x205480);
  (*pcVar3)(*(int *)(puVar2 + 0x205470) + -0x5bdc,0x19a,*(int *)(puVar2 + 0x205328) + -0x2d94,in_a3,
            puVar2 + 0x20d28c);
  pcVar4 = *(code **)(pcVar3 + 0x20544c);
  (*pcVar4)(*(int *)(pcVar3 + 0x20543c) + -0x4fe0,0x6f,*(int *)(pcVar3 + 0x2052f4) + -0x2e80,in_a3,
            pcVar3 + 0x20d258);
  pcVar3 = *(code **)(pcVar4 + 0x205418);
  iVar1 = *(int *)(pcVar4 + 0x205408) + -0x4fe0;
  (*pcVar3)(iVar1,0xd81,*(int *)(pcVar4 + 0x2052c0) + -0x2f70,in_a3,pcVar4 + 0x20d224);
  if (*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) == 0) {
    (**(code **)(pcVar3 + 0x2053e4))
              (*(int *)(pcVar3 + 0x2053d4) + -0x5cec,0x69,*(int *)(pcVar3 + 0x20528c) + -0x2a68,
               in_a3,pcVar3 + 0x20d1f0);
  }
  else if (**(int **)(*(int *)(**(int **)(pcVar3 + 0x205c00) + 0xc) + 4) == 0x20) {
    return iVar1;
  }
  pcVar4 = *(code **)(pcVar3 + 0x2053e4);
  iVar1 = *(int *)(pcVar3 + 0x2053d4) + -0x5bdc;
  (*pcVar4)(iVar1,0x7f4,*(int *)(pcVar3 + 0x20528c) + -0x2b9c);
  if (*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) != 0) {
    if (**(int **)(*(int *)(**(int **)(pcVar4 + 0x205b80) + 0xc) + 4) == 0x40) {
      return iVar1;
    }
    iVar1 = (**(code **)(pcVar4 + 0x205364))
                      (*(int *)(pcVar4 + 0x205354) + -0x5bdc,0x7f4,
                       *(int *)(pcVar4 + 0x20520c) + -0x2c30);
    return iVar1;
  }
  iVar1 = (**(code **)(pcVar4 + 0x205364))
                    (*(int *)(pcVar4 + 0x205354) + -0x5cec,0x69,
                     *(int *)(pcVar4 + 0x20520c) + -0x2a68,in_a3,pcVar4 + 0x20d170);
  return iVar1;
}

