
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* 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_" */
/* std::ctype<wchar_t> const& std::use_facet<std::ctype<wchar_t> >(std::locale const&) */

ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)

{
  uint uVar1;
  ctype *pcVar2;
  int iVar3;
  int iVar4;
  ctype *pcVar5;
  int *piVar6;
  int *piVar7;
  int *piVar8;
  undefined4 unaff_s0;
  undefined1 uVar9;
  int *piVar10;
  int *unaff_retaddr;
  int *piStackX_0;
  int *piStack_58;
  byte bStack_54;
  int iStack_50;
  locale *plStack_48;
  uint uStack_14;
  undefined4 uStack_c;
  
  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);
  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||
     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {
                    /* WARNING: Subroutine does not return */
    __throw_bad_cast();
  }
  uStack_14 = 0;
  piVar6 = (int *)PTR_PTR_004c1364;
  piVar8 = (int *)PTR_PTR_004c2f3c;
  pcVar2 = (ctype *)__dynamic_cast();
  if (pcVar2 != (ctype *)0x0) {
    return pcVar2;
  }
  (*(code *)PTR___cxa_bad_cast_004c2c80)();
  uVar1 = uStack_14 >> 0x18;
  uVar9 = (undefined1)(uStack_14 >> 0x18);
  plStack_48 = param_1;
  pcVar2 = use_facet<std::ctype<wchar_t>>
                     ((locale *)
                      &gold::Position_dependent_options::default_options_.retain_symbols_file_.
                       option.helparg);
  if (unaff_retaddr != piStackX_0) {
    do {
      uVar9 = (undefined1)uVar1;
      piVar10 = unaff_retaddr + 1;
      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);
      if (iVar3 == 0x25) {
        if (piStackX_0 == piVar10) break;
        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);
        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {
          piVar10 = unaff_retaddr + 2;
          if (piStackX_0 == piVar10) break;
          iStack_50 = iVar3;
          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);
          iVar4 = iStack_50;
        }
        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);
        piVar10 = piVar10 + 1;
        (**(code **)(*piVar6 + 8))
                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);
        uVar1 = (uint)bStack_54;
        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);
        piVar8 = piStack_58;
      }
      else if (uVar1 == 0) {
        piVar7 = (int *)piVar8[5];
        iVar3 = *unaff_retaddr;
        if (piVar7 < (int *)piVar8[6]) {
          *piVar7 = iVar3;
          piVar8[5] = (int)(piVar7 + 1);
        }
        else {
          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);
        }
        uVar1 = (uint)(iVar3 == -1);
      }
      uVar9 = (undefined1)uVar1;
      unaff_retaddr = piVar10;
    } while (piStackX_0 != piVar10);
  }
  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);
  *(int **)pcVar5 = piVar8;
  *(uint *)(pcVar5 + 4) = uStack_14;
  return pcVar5;
}



/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* std::ctype<wchar_t> const& std::use_facet<std::ctype<wchar_t> >(std::locale const&) */

ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)

{
  uint uVar1;
  ctype *pcVar2;
  int iVar3;
  int iVar4;
  ctype *pcVar5;
  int *piVar6;
  int *piVar7;
  int *piVar8;
  undefined4 unaff_s0;
  undefined1 uVar9;
  int *piVar10;
  int *unaff_retaddr;
  int *piStackX_0;
  int *piStack_58;
  byte bStack_54;
  int iStack_50;
  locale *plStack_48;
  uint uStack_14;
  undefined4 uStack_c;
  
  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);
  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||
     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {
                    /* WARNING: Subroutine does not return */
    __throw_bad_cast();
  }
  uStack_14 = 0;
  piVar6 = (int *)PTR_PTR_004c1364;
  piVar8 = (int *)PTR_PTR_004c2f3c;
  pcVar2 = (ctype *)__dynamic_cast();
  if (pcVar2 != (ctype *)0x0) {
    return pcVar2;
  }
  (*(code *)PTR___cxa_bad_cast_004c2c80)();
  uVar1 = uStack_14 >> 0x18;
  uVar9 = (undefined1)(uStack_14 >> 0x18);
  plStack_48 = param_1;
  pcVar2 = use_facet<std::ctype<wchar_t>>
                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));
  if (unaff_retaddr != piStackX_0) {
    do {
      uVar9 = (undefined1)uVar1;
      piVar10 = unaff_retaddr + 1;
      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);
      if (iVar3 == 0x25) {
        if (piStackX_0 == piVar10) break;
        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);
        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {
          piVar10 = unaff_retaddr + 2;
          if (piStackX_0 == piVar10) break;
          iStack_50 = iVar3;
          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);
          iVar4 = iStack_50;
        }
        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);
        piVar10 = piVar10 + 1;
        (**(code **)(*piVar6 + 8))
                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);
        uVar1 = (uint)bStack_54;
        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);
        piVar8 = piStack_58;
      }
      else if (uVar1 == 0) {
        piVar7 = (int *)piVar8[5];
        iVar3 = *unaff_retaddr;
        if (piVar7 < (int *)piVar8[6]) {
          *piVar7 = iVar3;
          piVar8[5] = (int)(piVar7 + 1);
        }
        else {
          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);
        }
        uVar1 = (uint)(iVar3 == -1);
      }
      uVar9 = (undefined1)uVar1;
      unaff_retaddr = piVar10;
    } while (piStackX_0 != piVar10);
  }
  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);
  *(int **)pcVar5 = piVar8;
  *(uint *)(pcVar5 + 4) = uStack_14;
  return pcVar5;
}


lui gp,0x13
addiu gp,gp,-0x3fbc
addu gp,gp,t9
addiu sp,sp,-0x20
lw t9,-0x65cc(gp)
sw s0,0x18(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw ra,0x1c(sp)
lw a0,-0x6308(gp)
jalr t9
_nop
lw a0,0x0(s0)
lw gp,0x10(sp)
lw v1,0x8(a0)
sltu v1,v0,v1
beq v1,zero,0x0039d280
_lw a0,0x4(a0)
sll v0,v0,0x2
addu v0,a0,v0
lw a0,0x0(v0)
beq a0,zero,0x0039d280
_lw t9,-0x7ee4(gp)
lw a2,-0x6304(gp)
lw a1,-0x7edc(gp)
bal 0x0038cef0
_or a3,zero,zero
beq v0,zero,0x0039d28c
_lw gp,0x10(sp)
lw ra,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
lw t9,-0x6f84(gp)
bal 0x00389530
_nop
lw t9,-0x65c0(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* std::ctype<wchar_t> const& std::use_facet<std::ctype<wchar_t> >(std::locale const&) */\n\nctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)\n\n{\n  uint uVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  ctype *pcVar5;\n  int *piVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined4 unaff_s0;\n  undefined1 uVar9;\n  int *piVar10;\n  int *unaff_retaddr;\n  int *piStackX_0;\n  int *piStack_58;\n  byte bStack_54;\n  int iStack_50;\n  locale *plStack_48;\n  uint uStack_14;\n  undefined4 uStack_c;\n  \n  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }\n  uStack_14 = 0;\n  piVar6 = (int *)PTR_PTR_004c1364;\n  piVar8 = (int *)PTR_PTR_004c2f3c;\n  pcVar2 = (ctype *)__dynamic_cast();\n  if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }\n  (*(code *)PTR___cxa_bad_cast_004c2c80)();\n  uVar1 = uStack_14 >> 0x18;\n  uVar9 = (undefined1)(uStack_14 >> 0x18);\n  plStack_48 = param_1;\n  pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));\n  if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }\n  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n  *(int **)pcVar5 = piVar8;\n  *(uint *)(pcVar5 + 4) = uStack_14;\n  return pcVar5;\n}\n\n" comment comment (ERROR "ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)" (binary_expression "ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)" (binary_expression "ctype * std::use_facet<std" (binary_expression "ctype * std" identifier * identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>(locale *param_1)" identifier >> (parenthesized_expression "(locale *param_1)" ( (binary_expression "locale *param_1" identifier * identifier) ))))) (compound_statement "{\n  uint uVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  ctype *pcVar5;\n  int *piVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined4 unaff_s0;\n  undefined1 uVar9;\n  int *piVar10;\n  int *unaff_retaddr;\n  int *piStackX_0;\n  int *piStack_58;\n  byte bStack_54;\n  int iStack_50;\n  locale *plStack_48;\n  uint uStack_14;\n  undefined4 uStack_c;\n  \n  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }\n  uStack_14 = 0;\n  piVar6 = (int *)PTR_PTR_004c1364;\n  piVar8 = (int *)PTR_PTR_004c2f3c;\n  pcVar2 = (ctype *)__dynamic_cast();\n  if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }\n  (*(code *)PTR___cxa_bad_cast_004c2c80)();\n  uVar1 = uStack_14 >> 0x18;\n  uVar9 = (undefined1)(uStack_14 >> 0x18);\n  plStack_48 = param_1;\n  pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));\n  if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }\n  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n  *(int **)pcVar5 = piVar8;\n  *(uint *)(pcVar5 + 4) = uStack_14;\n  return pcVar5;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ctype *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ctype *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 unaff_s0;" type_identifier identifier ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *unaff_retaddr;" primitive_type (pointer_declarator "*unaff_retaddr" * identifier) ;) (declaration "int *piStackX_0;" primitive_type (pointer_declarator "*piStackX_0" * identifier) ;) (declaration "int *piStack_58;" primitive_type (pointer_declarator "*piStack_58" * identifier) ;) (declaration "byte bStack_54;" type_identifier identifier ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "locale *plStack_48;" type_identifier (pointer_declarator "*plStack_48" * identifier) ;) (declaration "uint uStack_14;" type_identifier identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);" (assignment_expression "uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38)" identifier = (call_expression "(*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38)" (parenthesized_expression "(*(code *)PTR__M_id_004c2c74)" ( (pointer_expression "*(code *)PTR__M_id_004c2c74" * (cast_expression "(code *)PTR__M_id_004c2c74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_004c2f38)" ( identifier )))) ;) (if_statement "if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }" if (parenthesized_expression "((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0))" ( (binary_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)" (parenthesized_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1)" ( (binary_expression "*(uint *)(*(int *)param_1 + 8) <= uVar1" (pointer_expression "*(uint *)(*(int *)param_1 + 8)" * (cast_expression "(uint *)(*(int *)param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) <= identifier) )) || (parenthesized_expression "(pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)" ( (comma_expression "pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0" (assignment_expression "pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" identifier = (pointer_expression "*(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" * (cast_expression "(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (binary_expression "*(int *)(*(int *)param_1 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*(int *)param_1 + 4)" * (cast_expression "(int *)(*(int *)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 4)" ( (binary_expression "*(int *)param_1 + 4" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + (binary_expression "uVar1 * 4" identifier * number_literal)) ))))) , (binary_expression "pcVar5 == (ctype *)0x0" identifier == (cast_expression "(ctype *)0x0" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }" { comment (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uStack_14 = 0;" (assignment_expression "uStack_14 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)PTR_PTR_004c1364;" (assignment_expression "piVar6 = (int *)PTR_PTR_004c1364" identifier = (cast_expression "(int *)PTR_PTR_004c1364" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar8 = (int *)PTR_PTR_004c2f3c;" (assignment_expression "piVar8 = (int *)PTR_PTR_004c2f3c" identifier = (cast_expression "(int *)PTR_PTR_004c2f3c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar2 = (ctype *)__dynamic_cast();" (assignment_expression "pcVar2 = (ctype *)__dynamic_cast()" identifier = (cast_expression "(ctype *)__dynamic_cast()" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }" if (parenthesized_expression "(pcVar2 != (ctype *)0x0)" ( (binary_expression "pcVar2 != (ctype *)0x0" identifier != (cast_expression "(ctype *)0x0" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return pcVar2;\n  }" { (return_statement "return pcVar2;" return identifier ;) })) (expression_statement "(*(code *)PTR___cxa_bad_cast_004c2c80)();" (call_expression "(*(code *)PTR___cxa_bad_cast_004c2c80)()" (parenthesized_expression "(*(code *)PTR___cxa_bad_cast_004c2c80)" ( (pointer_expression "*(code *)PTR___cxa_bad_cast_004c2c80" * (cast_expression "(code *)PTR___cxa_bad_cast_004c2c80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar1 = uStack_14 >> 0x18;" (assignment_expression "uVar1 = uStack_14 >> 0x18" identifier = (binary_expression "uStack_14 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar9 = (undefined1)(uStack_14 >> 0x18);" (assignment_expression "uVar9 = (undefined1)(uStack_14 >> 0x18)" identifier = (call_expression "(undefined1)(uStack_14 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uStack_14 >> 0x18)" ( (binary_expression "uStack_14 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "plStack_48 = param_1;" (assignment_expression "plStack_48 = param_1" identifier = identifier) ;) (expression_statement "pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));" (binary_expression "pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c))" (assignment_expression "pcVar2 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c))" identifier >> (parenthesized_expression "((locale *)(gold::Position_dependent_options::default_options_ + 0x327c))" ( (cast_expression "(locale *)(gold::Position_dependent_options::default_options_ + 0x327c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(gold::Position_dependent_options::default_options_ + 0x327c)" ( (ERROR "gold::Position_dependent_options::" identifier : : identifier : :) (binary_expression "default_options_ + 0x327c" identifier + number_literal) ))) )))) ;) (if_statement "if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }" if (parenthesized_expression "(unaff_retaddr != piStackX_0)" ( (binary_expression "unaff_retaddr != piStackX_0" identifier != identifier) )) (compound_statement "{\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }" { (do_statement "do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);" do (compound_statement "{\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    }" { (expression_statement "uVar9 = (undefined1)uVar1;" (assignment_expression "uVar9 = (undefined1)uVar1" identifier = (cast_expression "(undefined1)uVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "piVar10 = unaff_retaddr + 1;" (assignment_expression "piVar10 = unaff_retaddr + 1" identifier = (binary_expression "unaff_retaddr + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*unaff_retaddr,0)" ( identifier , (pointer_expression "*unaff_retaddr" * identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" if (parenthesized_expression "(iVar3 == 0x25)" ( (binary_expression "iVar3 == 0x25" identifier == number_literal) )) (compound_statement "{\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }" { (if_statement "if (piStackX_0 == piVar10) break;" if (parenthesized_expression "(piStackX_0 == piVar10)" ( (binary_expression "piStackX_0 == piVar10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,unaff_retaddr[1],0)" ( identifier , (subscript_expression "unaff_retaddr[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }" if (parenthesized_expression "((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f))" ( (binary_expression "(iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)" (parenthesized_expression "(iVar3 == 0x45)" ( (binary_expression "iVar3 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = 0, iVar3 == 0x4f)" ( (comma_expression "iVar4 = 0, iVar3 == 0x4f" (assignment_expression "iVar4 = 0" identifier = number_literal) , (binary_expression "iVar3 == 0x4f" identifier == number_literal)) ))) )) (compound_statement "{\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }" { (expression_statement "piVar10 = unaff_retaddr + 2;" (assignment_expression "piVar10 = unaff_retaddr + 2" identifier = (binary_expression "unaff_retaddr + 2" identifier + number_literal)) ;) (if_statement "if (piStackX_0 == piVar10) break;" if (parenthesized_expression "(piStackX_0 == piVar10)" ( (binary_expression "piStackX_0 == piVar10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iStack_50 = iVar3;" (assignment_expression "iStack_50 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,unaff_retaddr[2],0)" ( identifier , (subscript_expression "unaff_retaddr[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "iVar4 = iStack_50;" (assignment_expression "iVar4 = iStack_50" identifier = identifier) ;) })) (expression_statement "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_)" identifier = (call_expression "CONCAT13(uVar9,uStack_14._1_3_)" identifier (argument_list "(uVar9,uStack_14._1_3_)" ( identifier , (field_expression "uStack_14._1_3_" identifier . field_identifier) )))) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);" (call_expression "(**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4)" (parenthesized_expression "(**(code **)(*piVar6 + 8))" ( (pointer_expression "**(code **)(*piVar6 + 8)" * (pointer_expression "*(code **)(*piVar6 + 8)" * (cast_expression "(code **)(*piVar6 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 8)" ( (binary_expression "*piVar6 + 8" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "(&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4)" ( (pointer_expression "&piStack_58" & identifier) , identifier , identifier , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar1 = (uint)bStack_54;" (assignment_expression "uVar1 = (uint)bStack_54" identifier = (cast_expression "(uint)bStack_54" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_)" identifier = (call_expression "CONCAT13(bStack_54,uStack_14._1_3_)" identifier (argument_list "(bStack_54,uStack_14._1_3_)" ( identifier , (field_expression "uStack_14._1_3_" identifier . field_identifier) )))) ;) (expression_statement "piVar8 = piStack_58;" (assignment_expression "piVar8 = piStack_58" identifier = identifier) ;) }) (else_clause "else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" else (if_statement "if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" { (expression_statement "piVar7 = (int *)piVar8[5];" (assignment_expression "piVar7 = (int *)piVar8[5]" identifier = (cast_expression "(int *)piVar8[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar3 = *unaff_retaddr;" (assignment_expression "iVar3 = *unaff_retaddr" identifier = (pointer_expression "*unaff_retaddr" * identifier)) ;) (if_statement "if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" if (parenthesized_expression "(piVar7 < (int *)piVar8[6])" ( (binary_expression "piVar7 < (int *)piVar8[6]" identifier < (cast_expression "(int *)piVar8[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[6]" identifier [ number_literal ]))) )) (compound_statement "{\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }" { (expression_statement "*piVar7 = iVar3;" (assignment_expression "*piVar7 = iVar3" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "piVar8[5] = (int)(piVar7 + 1);" (assignment_expression "piVar8[5] = (int)(piVar7 + 1)" (subscript_expression "piVar8[5]" identifier [ number_literal ]) = (cast_expression "(int)(piVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar7 + 1)" ( (binary_expression "piVar7 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" { (expression_statement "iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3)" identifier = (call_expression "(**(code **)(*piVar8 + 0x34))(piVar8,iVar3)" (parenthesized_expression "(**(code **)(*piVar8 + 0x34))" ( (pointer_expression "**(code **)(*piVar8 + 0x34)" * (pointer_expression "*(code **)(*piVar8 + 0x34)" * (cast_expression "(code **)(*piVar8 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x34)" ( (binary_expression "*piVar8 + 0x34" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8,iVar3)" ( identifier , identifier )))) ;) }))) (expression_statement "uVar1 = (uint)(iVar3 == -1);" (assignment_expression "uVar1 = (uint)(iVar3 == -1)" identifier = (call_expression "(uint)(iVar3 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )))) ;) })))) (expression_statement "uVar9 = (undefined1)uVar1;" (assignment_expression "uVar9 = (undefined1)uVar1" identifier = (cast_expression "(undefined1)uVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "unaff_retaddr = piVar10;" (assignment_expression "unaff_retaddr = piVar10" identifier = identifier) ;) }) while (parenthesized_expression "(piStackX_0 != piVar10)" ( (binary_expression "piStackX_0 != piVar10" identifier != identifier) )) ;) })) (expression_statement "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_)" identifier = (call_expression "CONCAT13(uVar9,uStack_14._1_3_)" identifier (argument_list "(uVar9,uStack_14._1_3_)" ( identifier , (field_expression "uStack_14._1_3_" identifier . field_identifier) )))) ;) (expression_statement "*(int **)pcVar5 = piVar8;" (assignment_expression "*(int **)pcVar5 = piVar8" (pointer_expression "*(int **)pcVar5" * (cast_expression "(int **)pcVar5" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(uint *)(pcVar5 + 4) = uStack_14;" (assignment_expression "*(uint *)(pcVar5 + 4) = uStack_14" (pointer_expression "*(uint *)(pcVar5 + 4)" * (cast_expression "(uint *)(pcVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 4)" ( (binary_expression "pcVar5 + 4" identifier + number_literal) )))) = identifier) ;) (return_statement "return pcVar5;" return identifier ;) }))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* 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/* std::ctype<wchar_t> const& std::use_facet<std::ctype<wchar_t> >(std::locale const&) */\n\nctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)\n\n{\n  uint uVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  ctype *pcVar5;\n  int *piVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined4 unaff_s0;\n  undefined1 uVar9;\n  int *piVar10;\n  int *unaff_retaddr;\n  int *piStackX_0;\n  int *piStack_58;\n  byte bStack_54;\n  int iStack_50;\n  locale *plStack_48;\n  uint uStack_14;\n  undefined4 uStack_c;\n  \n  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }\n  uStack_14 = 0;\n  piVar6 = (int *)PTR_PTR_004c1364;\n  piVar8 = (int *)PTR_PTR_004c2f3c;\n  pcVar2 = (ctype *)__dynamic_cast();\n  if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }\n  (*(code *)PTR___cxa_bad_cast_004c2c80)();\n  uVar1 = uStack_14 >> 0x18;\n  uVar9 = (undefined1)(uStack_14 >> 0x18);\n  plStack_48 = param_1;\n  pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)\n                      &gold::Position_dependent_options::default_options_.retain_symbols_file_.\n                       option.helparg);\n  if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }\n  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n  *(int **)pcVar5 = piVar8;\n  *(uint *)(pcVar5 + 4) = uStack_14;\n  return pcVar5;\n}\n\n" comment comment comment comment comment comment comment comment (ERROR "ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)" (binary_expression "ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)" (binary_expression "ctype * std::use_facet<std" (binary_expression "ctype * std" identifier * identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>(locale *param_1)" identifier >> (parenthesized_expression "(locale *param_1)" ( (binary_expression "locale *param_1" identifier * identifier) ))))) (compound_statement "{\n  uint uVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  ctype *pcVar5;\n  int *piVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined4 unaff_s0;\n  undefined1 uVar9;\n  int *piVar10;\n  int *unaff_retaddr;\n  int *piStackX_0;\n  int *piStack_58;\n  byte bStack_54;\n  int iStack_50;\n  locale *plStack_48;\n  uint uStack_14;\n  undefined4 uStack_c;\n  \n  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }\n  uStack_14 = 0;\n  piVar6 = (int *)PTR_PTR_004c1364;\n  piVar8 = (int *)PTR_PTR_004c2f3c;\n  pcVar2 = (ctype *)__dynamic_cast();\n  if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }\n  (*(code *)PTR___cxa_bad_cast_004c2c80)();\n  uVar1 = uStack_14 >> 0x18;\n  uVar9 = (undefined1)(uStack_14 >> 0x18);\n  plStack_48 = param_1;\n  pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)\n                      &gold::Position_dependent_options::default_options_.retain_symbols_file_.\n                       option.helparg);\n  if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }\n  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n  *(int **)pcVar5 = piVar8;\n  *(uint *)(pcVar5 + 4) = uStack_14;\n  return pcVar5;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ctype *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ctype *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 unaff_s0;" type_identifier identifier ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *unaff_retaddr;" primitive_type (pointer_declarator "*unaff_retaddr" * identifier) ;) (declaration "int *piStackX_0;" primitive_type (pointer_declarator "*piStackX_0" * identifier) ;) (declaration "int *piStack_58;" primitive_type (pointer_declarator "*piStack_58" * identifier) ;) (declaration "byte bStack_54;" type_identifier identifier ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "locale *plStack_48;" type_identifier (pointer_declarator "*plStack_48" * identifier) ;) (declaration "uint uStack_14;" type_identifier identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);" (assignment_expression "uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38)" identifier = (call_expression "(*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38)" (parenthesized_expression "(*(code *)PTR__M_id_004c2c74)" ( (pointer_expression "*(code *)PTR__M_id_004c2c74" * (cast_expression "(code *)PTR__M_id_004c2c74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_004c2f38)" ( identifier )))) ;) (if_statement "if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }" if (parenthesized_expression "((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0))" ( (binary_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)" (parenthesized_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1)" ( (binary_expression "*(uint *)(*(int *)param_1 + 8) <= uVar1" (pointer_expression "*(uint *)(*(int *)param_1 + 8)" * (cast_expression "(uint *)(*(int *)param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) <= identifier) )) || (parenthesized_expression "(pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)" ( (comma_expression "pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0" (assignment_expression "pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" identifier = (pointer_expression "*(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" * (cast_expression "(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (binary_expression "*(int *)(*(int *)param_1 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*(int *)param_1 + 4)" * (cast_expression "(int *)(*(int *)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 4)" ( (binary_expression "*(int *)param_1 + 4" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + (binary_expression "uVar1 * 4" identifier * number_literal)) ))))) , (binary_expression "pcVar5 == (ctype *)0x0" identifier == (cast_expression "(ctype *)0x0" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }" { comment (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uStack_14 = 0;" (assignment_expression "uStack_14 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)PTR_PTR_004c1364;" (assignment_expression "piVar6 = (int *)PTR_PTR_004c1364" identifier = (cast_expression "(int *)PTR_PTR_004c1364" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar8 = (int *)PTR_PTR_004c2f3c;" (assignment_expression "piVar8 = (int *)PTR_PTR_004c2f3c" identifier = (cast_expression "(int *)PTR_PTR_004c2f3c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar2 = (ctype *)__dynamic_cast();" (assignment_expression "pcVar2 = (ctype *)__dynamic_cast()" identifier = (cast_expression "(ctype *)__dynamic_cast()" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }" if (parenthesized_expression "(pcVar2 != (ctype *)0x0)" ( (binary_expression "pcVar2 != (ctype *)0x0" identifier != (cast_expression "(ctype *)0x0" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return pcVar2;\n  }" { (return_statement "return pcVar2;" return identifier ;) })) (expression_statement "(*(code *)PTR___cxa_bad_cast_004c2c80)();" (call_expression "(*(code *)PTR___cxa_bad_cast_004c2c80)()" (parenthesized_expression "(*(code *)PTR___cxa_bad_cast_004c2c80)" ( (pointer_expression "*(code *)PTR___cxa_bad_cast_004c2c80" * (cast_expression "(code *)PTR___cxa_bad_cast_004c2c80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar1 = uStack_14 >> 0x18;" (assignment_expression "uVar1 = uStack_14 >> 0x18" identifier = (binary_expression "uStack_14 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar9 = (undefined1)(uStack_14 >> 0x18);" (assignment_expression "uVar9 = (undefined1)(uStack_14 >> 0x18)" identifier = (call_expression "(undefined1)(uStack_14 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uStack_14 >> 0x18)" ( (binary_expression "uStack_14 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "plStack_48 = param_1;" (assignment_expression "plStack_48 = param_1" identifier = identifier) ;) (expression_statement "pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)\n                      &gold::Position_dependent_options::default_options_.retain_symbols_file_.\n                       option.helparg);" (binary_expression "pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)\n                      &gold::Position_dependent_options::default_options_.retain_symbols_file_.\n                       option.helparg)" (assignment_expression "pcVar2 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>\n                     ((locale *)\n                      &gold::Position_dependent_options::default_options_.retain_symbols_file_.\n                       option.helparg)" identifier >> (parenthesized_expression "((locale *)\n                      &gold::Position_dependent_options::default_options_.retain_symbols_file_.\n                       option.helparg)" ( (field_expression "(locale *)\n                      &gold::Position_dependent_options::default_options_.retain_symbols_file_.\n                       option.helparg" (field_expression "(locale *)\n                      &gold::Position_dependent_options::default_options_.retain_symbols_file_.\n                       option" (field_expression "(locale *)\n                      &gold::Position_dependent_options::default_options_.retain_symbols_file_" (cast_expression "(locale *)\n                      &gold" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&gold" & identifier)) (ERROR "::Position_dependent_options::default_options_" : : identifier : : identifier) . field_identifier) . field_identifier) . field_identifier) )))) ;) (if_statement "if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }" if (parenthesized_expression "(unaff_retaddr != piStackX_0)" ( (binary_expression "unaff_retaddr != piStackX_0" identifier != identifier) )) (compound_statement "{\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }" { (do_statement "do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);" do (compound_statement "{\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    }" { (expression_statement "uVar9 = (undefined1)uVar1;" (assignment_expression "uVar9 = (undefined1)uVar1" identifier = (cast_expression "(undefined1)uVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "piVar10 = unaff_retaddr + 1;" (assignment_expression "piVar10 = unaff_retaddr + 1" identifier = (binary_expression "unaff_retaddr + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*unaff_retaddr,0)" ( identifier , (pointer_expression "*unaff_retaddr" * identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" if (parenthesized_expression "(iVar3 == 0x25)" ( (binary_expression "iVar3 == 0x25" identifier == number_literal) )) (compound_statement "{\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }" { (if_statement "if (piStackX_0 == piVar10) break;" if (parenthesized_expression "(piStackX_0 == piVar10)" ( (binary_expression "piStackX_0 == piVar10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,unaff_retaddr[1],0)" ( identifier , (subscript_expression "unaff_retaddr[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }" if (parenthesized_expression "((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f))" ( (binary_expression "(iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)" (parenthesized_expression "(iVar3 == 0x45)" ( (binary_expression "iVar3 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = 0, iVar3 == 0x4f)" ( (comma_expression "iVar4 = 0, iVar3 == 0x4f" (assignment_expression "iVar4 = 0" identifier = number_literal) , (binary_expression "iVar3 == 0x4f" identifier == number_literal)) ))) )) (compound_statement "{\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }" { (expression_statement "piVar10 = unaff_retaddr + 2;" (assignment_expression "piVar10 = unaff_retaddr + 2" identifier = (binary_expression "unaff_retaddr + 2" identifier + number_literal)) ;) (if_statement "if (piStackX_0 == piVar10) break;" if (parenthesized_expression "(piStackX_0 == piVar10)" ( (binary_expression "piStackX_0 == piVar10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iStack_50 = iVar3;" (assignment_expression "iStack_50 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,unaff_retaddr[2],0)" ( identifier , (subscript_expression "unaff_retaddr[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "iVar4 = iStack_50;" (assignment_expression "iVar4 = iStack_50" identifier = identifier) ;) })) (expression_statement "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_)" identifier = (call_expression "CONCAT13(uVar9,uStack_14._1_3_)" identifier (argument_list "(uVar9,uStack_14._1_3_)" ( identifier , (field_expression "uStack_14._1_3_" identifier . field_identifier) )))) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);" (call_expression "(**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4)" (parenthesized_expression "(**(code **)(*piVar6 + 8))" ( (pointer_expression "**(code **)(*piVar6 + 8)" * (pointer_expression "*(code **)(*piVar6 + 8)" * (cast_expression "(code **)(*piVar6 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 8)" ( (binary_expression "*piVar6 + 8" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "(&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4)" ( (pointer_expression "&piStack_58" & identifier) , identifier , identifier , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar1 = (uint)bStack_54;" (assignment_expression "uVar1 = (uint)bStack_54" identifier = (cast_expression "(uint)bStack_54" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_)" identifier = (call_expression "CONCAT13(bStack_54,uStack_14._1_3_)" identifier (argument_list "(bStack_54,uStack_14._1_3_)" ( identifier , (field_expression "uStack_14._1_3_" identifier . field_identifier) )))) ;) (expression_statement "piVar8 = piStack_58;" (assignment_expression "piVar8 = piStack_58" identifier = identifier) ;) }) (else_clause "else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" else (if_statement "if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" { (expression_statement "piVar7 = (int *)piVar8[5];" (assignment_expression "piVar7 = (int *)piVar8[5]" identifier = (cast_expression "(int *)piVar8[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar3 = *unaff_retaddr;" (assignment_expression "iVar3 = *unaff_retaddr" identifier = (pointer_expression "*unaff_retaddr" * identifier)) ;) (if_statement "if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" if (parenthesized_expression "(piVar7 < (int *)piVar8[6])" ( (binary_expression "piVar7 < (int *)piVar8[6]" identifier < (cast_expression "(int *)piVar8[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[6]" identifier [ number_literal ]))) )) (compound_statement "{\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }" { (expression_statement "*piVar7 = iVar3;" (assignment_expression "*piVar7 = iVar3" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "piVar8[5] = (int)(piVar7 + 1);" (assignment_expression "piVar8[5] = (int)(piVar7 + 1)" (subscript_expression "piVar8[5]" identifier [ number_literal ]) = (cast_expression "(int)(piVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar7 + 1)" ( (binary_expression "piVar7 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" { (expression_statement "iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3)" identifier = (call_expression "(**(code **)(*piVar8 + 0x34))(piVar8,iVar3)" (parenthesized_expression "(**(code **)(*piVar8 + 0x34))" ( (pointer_expression "**(code **)(*piVar8 + 0x34)" * (pointer_expression "*(code **)(*piVar8 + 0x34)" * (cast_expression "(code **)(*piVar8 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x34)" ( (binary_expression "*piVar8 + 0x34" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8,iVar3)" ( identifier , identifier )))) ;) }))) (expression_statement "uVar1 = (uint)(iVar3 == -1);" (assignment_expression "uVar1 = (uint)(iVar3 == -1)" identifier = (call_expression "(uint)(iVar3 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )))) ;) })))) (expression_statement "uVar9 = (undefined1)uVar1;" (assignment_expression "uVar9 = (undefined1)uVar1" identifier = (cast_expression "(undefined1)uVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "unaff_retaddr = piVar10;" (assignment_expression "unaff_retaddr = piVar10" identifier = identifier) ;) }) while (parenthesized_expression "(piStackX_0 != piVar10)" ( (binary_expression "piStackX_0 != piVar10" identifier != identifier) )) ;) })) (expression_statement "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_)" identifier = (call_expression "CONCAT13(uVar9,uStack_14._1_3_)" identifier (argument_list "(uVar9,uStack_14._1_3_)" ( identifier , (field_expression "uStack_14._1_3_" identifier . field_identifier) )))) ;) (expression_statement "*(int **)pcVar5 = piVar8;" (assignment_expression "*(int **)pcVar5 = piVar8" (pointer_expression "*(int **)pcVar5" * (cast_expression "(int **)pcVar5" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(uint *)(pcVar5 + 4) = uStack_14;" (assignment_expression "*(uint *)(pcVar5 + 4) = uStack_14" (pointer_expression "*(uint *)(pcVar5 + 4)" * (cast_expression "(uint *)(pcVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 4)" ( (binary_expression "pcVar5 + 4" identifier + number_literal) )))) = identifier) ;) (return_statement "return pcVar5;" return identifier ;) }))
(translation_unit "ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)\n\n{\n  uint uVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  ctype *pcVar5;\n  int *piVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined4 unaff_s0;\n  undefined1 uVar9;\n  int *piVar10;\n  int *unaff_retaddr;\n  int *piStackX_0;\n  int *piStack_58;\n  byte bStack_54;\n  int iStack_50;\n  locale *plStack_48;\n  uint uStack_14;\n  undefined4 uStack_c;\n  \n  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    \n    __throw_bad_cast();\n  }\n  uStack_14 = 0;\n  piVar6 = (int *)PTR_PTR_004c1364;\n  piVar8 = (int *)PTR_PTR_004c2f3c;\n  pcVar2 = (ctype *)__dynamic_cast();\n  if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }\n  (*(code *)PTR___cxa_bad_cast_004c2c80)();\n  uVar1 = uStack_14 >> 0x18;\n  uVar9 = (undefined1)(uStack_14 >> 0x18);\n  plStack_48 = param_1;\n  pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));\n  if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }\n  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n  *(int **)pcVar5 = piVar8;\n  *(uint *)(pcVar5 + 4) = uStack_14;\n  return pcVar5;\n}\n\n" (ERROR "ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)" (binary_expression "ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)" (binary_expression "ctype * std::use_facet<std" (binary_expression "ctype * std" identifier * identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>(locale *param_1)" identifier >> (parenthesized_expression "(locale *param_1)" ( (binary_expression "locale *param_1" identifier * identifier) ))))) (compound_statement "{\n  uint uVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  ctype *pcVar5;\n  int *piVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined4 unaff_s0;\n  undefined1 uVar9;\n  int *piVar10;\n  int *unaff_retaddr;\n  int *piStackX_0;\n  int *piStack_58;\n  byte bStack_54;\n  int iStack_50;\n  locale *plStack_48;\n  uint uStack_14;\n  undefined4 uStack_c;\n  \n  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    \n    __throw_bad_cast();\n  }\n  uStack_14 = 0;\n  piVar6 = (int *)PTR_PTR_004c1364;\n  piVar8 = (int *)PTR_PTR_004c2f3c;\n  pcVar2 = (ctype *)__dynamic_cast();\n  if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }\n  (*(code *)PTR___cxa_bad_cast_004c2c80)();\n  uVar1 = uStack_14 >> 0x18;\n  uVar9 = (undefined1)(uStack_14 >> 0x18);\n  plStack_48 = param_1;\n  pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));\n  if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }\n  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n  *(int **)pcVar5 = piVar8;\n  *(uint *)(pcVar5 + 4) = uStack_14;\n  return pcVar5;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ctype *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ctype *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 unaff_s0;" type_identifier identifier ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *unaff_retaddr;" primitive_type (pointer_declarator "*unaff_retaddr" * identifier) ;) (declaration "int *piStackX_0;" primitive_type (pointer_declarator "*piStackX_0" * identifier) ;) (declaration "int *piStack_58;" primitive_type (pointer_declarator "*piStack_58" * identifier) ;) (declaration "byte bStack_54;" type_identifier identifier ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "locale *plStack_48;" type_identifier (pointer_declarator "*plStack_48" * identifier) ;) (declaration "uint uStack_14;" type_identifier identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);" (assignment_expression "uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38)" identifier = (call_expression "(*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38)" (parenthesized_expression "(*(code *)PTR__M_id_004c2c74)" ( (pointer_expression "*(code *)PTR__M_id_004c2c74" * (cast_expression "(code *)PTR__M_id_004c2c74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_004c2f38)" ( identifier )))) ;) (if_statement "if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    \n    __throw_bad_cast();\n  }" if (parenthesized_expression "((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0))" ( (binary_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)" (parenthesized_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1)" ( (binary_expression "*(uint *)(*(int *)param_1 + 8) <= uVar1" (pointer_expression "*(uint *)(*(int *)param_1 + 8)" * (cast_expression "(uint *)(*(int *)param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) <= identifier) )) || (parenthesized_expression "(pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)" ( (comma_expression "pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0" (assignment_expression "pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" identifier = (pointer_expression "*(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" * (cast_expression "(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (binary_expression "*(int *)(*(int *)param_1 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*(int *)param_1 + 4)" * (cast_expression "(int *)(*(int *)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 4)" ( (binary_expression "*(int *)param_1 + 4" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + (binary_expression "uVar1 * 4" identifier * number_literal)) ))))) , (binary_expression "pcVar5 == (ctype *)0x0" identifier == (cast_expression "(ctype *)0x0" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    \n    __throw_bad_cast();\n  }" { (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uStack_14 = 0;" (assignment_expression "uStack_14 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)PTR_PTR_004c1364;" (assignment_expression "piVar6 = (int *)PTR_PTR_004c1364" identifier = (cast_expression "(int *)PTR_PTR_004c1364" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar8 = (int *)PTR_PTR_004c2f3c;" (assignment_expression "piVar8 = (int *)PTR_PTR_004c2f3c" identifier = (cast_expression "(int *)PTR_PTR_004c2f3c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar2 = (ctype *)__dynamic_cast();" (assignment_expression "pcVar2 = (ctype *)__dynamic_cast()" identifier = (cast_expression "(ctype *)__dynamic_cast()" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }" if (parenthesized_expression "(pcVar2 != (ctype *)0x0)" ( (binary_expression "pcVar2 != (ctype *)0x0" identifier != (cast_expression "(ctype *)0x0" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return pcVar2;\n  }" { (return_statement "return pcVar2;" return identifier ;) })) (expression_statement "(*(code *)PTR___cxa_bad_cast_004c2c80)();" (call_expression "(*(code *)PTR___cxa_bad_cast_004c2c80)()" (parenthesized_expression "(*(code *)PTR___cxa_bad_cast_004c2c80)" ( (pointer_expression "*(code *)PTR___cxa_bad_cast_004c2c80" * (cast_expression "(code *)PTR___cxa_bad_cast_004c2c80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar1 = uStack_14 >> 0x18;" (assignment_expression "uVar1 = uStack_14 >> 0x18" identifier = (binary_expression "uStack_14 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar9 = (undefined1)(uStack_14 >> 0x18);" (assignment_expression "uVar9 = (undefined1)(uStack_14 >> 0x18)" identifier = (call_expression "(undefined1)(uStack_14 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uStack_14 >> 0x18)" ( (binary_expression "uStack_14 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "plStack_48 = param_1;" (assignment_expression "plStack_48 = param_1" identifier = identifier) ;) (expression_statement "pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));" (binary_expression "pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c))" (assignment_expression "pcVar2 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c))" identifier >> (parenthesized_expression "((locale *)(gold::Position_dependent_options::default_options_ + 0x327c))" ( (cast_expression "(locale *)(gold::Position_dependent_options::default_options_ + 0x327c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(gold::Position_dependent_options::default_options_ + 0x327c)" ( (ERROR "gold::Position_dependent_options::" identifier : : identifier : :) (binary_expression "default_options_ + 0x327c" identifier + number_literal) ))) )))) ;) (if_statement "if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }" if (parenthesized_expression "(unaff_retaddr != piStackX_0)" ( (binary_expression "unaff_retaddr != piStackX_0" identifier != identifier) )) (compound_statement "{\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }" { (do_statement "do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);" do (compound_statement "{\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    }" { (expression_statement "uVar9 = (undefined1)uVar1;" (assignment_expression "uVar9 = (undefined1)uVar1" identifier = (cast_expression "(undefined1)uVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "piVar10 = unaff_retaddr + 1;" (assignment_expression "piVar10 = unaff_retaddr + 1" identifier = (binary_expression "unaff_retaddr + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*unaff_retaddr,0)" ( identifier , (pointer_expression "*unaff_retaddr" * identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" if (parenthesized_expression "(iVar3 == 0x25)" ( (binary_expression "iVar3 == 0x25" identifier == number_literal) )) (compound_statement "{\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }" { (if_statement "if (piStackX_0 == piVar10) break;" if (parenthesized_expression "(piStackX_0 == piVar10)" ( (binary_expression "piStackX_0 == piVar10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,unaff_retaddr[1],0)" ( identifier , (subscript_expression "unaff_retaddr[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }" if (parenthesized_expression "((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f))" ( (binary_expression "(iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)" (parenthesized_expression "(iVar3 == 0x45)" ( (binary_expression "iVar3 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = 0, iVar3 == 0x4f)" ( (comma_expression "iVar4 = 0, iVar3 == 0x4f" (assignment_expression "iVar4 = 0" identifier = number_literal) , (binary_expression "iVar3 == 0x4f" identifier == number_literal)) ))) )) (compound_statement "{\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }" { (expression_statement "piVar10 = unaff_retaddr + 2;" (assignment_expression "piVar10 = unaff_retaddr + 2" identifier = (binary_expression "unaff_retaddr + 2" identifier + number_literal)) ;) (if_statement "if (piStackX_0 == piVar10) break;" if (parenthesized_expression "(piStackX_0 == piVar10)" ( (binary_expression "piStackX_0 == piVar10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iStack_50 = iVar3;" (assignment_expression "iStack_50 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,unaff_retaddr[2],0)" ( identifier , (subscript_expression "unaff_retaddr[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "iVar4 = iStack_50;" (assignment_expression "iVar4 = iStack_50" identifier = identifier) ;) })) (expression_statement "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_)" identifier = (call_expression "CONCAT13(uVar9,uStack_14._1_3_)" identifier (argument_list "(uVar9,uStack_14._1_3_)" ( identifier , (field_expression "uStack_14._1_3_" identifier . field_identifier) )))) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);" (call_expression "(**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4)" (parenthesized_expression "(**(code **)(*piVar6 + 8))" ( (pointer_expression "**(code **)(*piVar6 + 8)" * (pointer_expression "*(code **)(*piVar6 + 8)" * (cast_expression "(code **)(*piVar6 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 8)" ( (binary_expression "*piVar6 + 8" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "(&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4)" ( (pointer_expression "&piStack_58" & identifier) , identifier , identifier , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar1 = (uint)bStack_54;" (assignment_expression "uVar1 = (uint)bStack_54" identifier = (cast_expression "(uint)bStack_54" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_)" identifier = (call_expression "CONCAT13(bStack_54,uStack_14._1_3_)" identifier (argument_list "(bStack_54,uStack_14._1_3_)" ( identifier , (field_expression "uStack_14._1_3_" identifier . field_identifier) )))) ;) (expression_statement "piVar8 = piStack_58;" (assignment_expression "piVar8 = piStack_58" identifier = identifier) ;) }) (else_clause "else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" else (if_statement "if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" { (expression_statement "piVar7 = (int *)piVar8[5];" (assignment_expression "piVar7 = (int *)piVar8[5]" identifier = (cast_expression "(int *)piVar8[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar3 = *unaff_retaddr;" (assignment_expression "iVar3 = *unaff_retaddr" identifier = (pointer_expression "*unaff_retaddr" * identifier)) ;) (if_statement "if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" if (parenthesized_expression "(piVar7 < (int *)piVar8[6])" ( (binary_expression "piVar7 < (int *)piVar8[6]" identifier < (cast_expression "(int *)piVar8[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[6]" identifier [ number_literal ]))) )) (compound_statement "{\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }" { (expression_statement "*piVar7 = iVar3;" (assignment_expression "*piVar7 = iVar3" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "piVar8[5] = (int)(piVar7 + 1);" (assignment_expression "piVar8[5] = (int)(piVar7 + 1)" (subscript_expression "piVar8[5]" identifier [ number_literal ]) = (cast_expression "(int)(piVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar7 + 1)" ( (binary_expression "piVar7 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" { (expression_statement "iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3)" identifier = (call_expression "(**(code **)(*piVar8 + 0x34))(piVar8,iVar3)" (parenthesized_expression "(**(code **)(*piVar8 + 0x34))" ( (pointer_expression "**(code **)(*piVar8 + 0x34)" * (pointer_expression "*(code **)(*piVar8 + 0x34)" * (cast_expression "(code **)(*piVar8 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x34)" ( (binary_expression "*piVar8 + 0x34" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8,iVar3)" ( identifier , identifier )))) ;) }))) (expression_statement "uVar1 = (uint)(iVar3 == -1);" (assignment_expression "uVar1 = (uint)(iVar3 == -1)" identifier = (call_expression "(uint)(iVar3 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )))) ;) })))) (expression_statement "uVar9 = (undefined1)uVar1;" (assignment_expression "uVar9 = (undefined1)uVar1" identifier = (cast_expression "(undefined1)uVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "unaff_retaddr = piVar10;" (assignment_expression "unaff_retaddr = piVar10" identifier = identifier) ;) }) while (parenthesized_expression "(piStackX_0 != piVar10)" ( (binary_expression "piStackX_0 != piVar10" identifier != identifier) )) ;) })) (expression_statement "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_)" identifier = (call_expression "CONCAT13(uVar9,uStack_14._1_3_)" identifier (argument_list "(uVar9,uStack_14._1_3_)" ( identifier , (field_expression "uStack_14._1_3_" identifier . field_identifier) )))) ;) (expression_statement "*(int **)pcVar5 = piVar8;" (assignment_expression "*(int **)pcVar5 = piVar8" (pointer_expression "*(int **)pcVar5" * (cast_expression "(int **)pcVar5" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(uint *)(pcVar5 + 4) = uStack_14;" (assignment_expression "*(uint *)(pcVar5 + 4) = uStack_14" (pointer_expression "*(uint *)(pcVar5 + 4)" * (cast_expression "(uint *)(pcVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 4)" ( (binary_expression "pcVar5 + 4" identifier + number_literal) )))) = identifier) ;) (return_statement "return pcVar5;" return identifier ;) }))
(translation_unit (ERROR (binary_expression (binary_expression (binary_expression IDENT * IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) < (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT * IDENT) ))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) <= IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + (binary_expression IDENT * LIT)) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (binary_expression (assignment_expression IDENT = (binary_expression IDENT < IDENT)) (ERROR : : IDENT) < (binary_expression IDENT >> (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (ERROR IDENT : : IDENT : :) (binary_expression IDENT + LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return IDENT ;) }))
(ERROR "ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)" (binary_expression "ctype * std::use_facet<std::ctype<wchar_t>>(locale *param_1)" (binary_expression "ctype * std::use_facet<std" (binary_expression "ctype * std" (identifier "ctype") (* "*") (identifier "std")) (ERROR "::use_facet" (: ":") (: ":") (identifier "use_facet")) (< "<") (identifier "std")) (ERROR "::ctype" (: ":") (: ":") (identifier "ctype")) (< "<") (binary_expression "wchar_t>>(locale *param_1)" (identifier "wchar_t") (>> ">>") (parenthesized_expression "(locale *param_1)" (( "(") (binary_expression "locale *param_1" (identifier "locale") (* "*") (identifier "param_1")) () ")"))))) (compound_statement "{\n  uint uVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  ctype *pcVar5;\n  int *piVar6;\n  int *piVar7;\n  int *piVar8;\n  undefined4 unaff_s0;\n  undefined1 uVar9;\n  int *piVar10;\n  int *unaff_retaddr;\n  int *piStackX_0;\n  int *piStack_58;\n  byte bStack_54;\n  int iStack_50;\n  locale *plStack_48;\n  uint uStack_14;\n  undefined4 uStack_c;\n  \n  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    \n    __throw_bad_cast();\n  }\n  uStack_14 = 0;\n  piVar6 = (int *)PTR_PTR_004c1364;\n  piVar8 = (int *)PTR_PTR_004c2f3c;\n  pcVar2 = (ctype *)__dynamic_cast();\n  if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }\n  (*(code *)PTR___cxa_bad_cast_004c2c80)();\n  uVar1 = uStack_14 >> 0x18;\n  uVar9 = (undefined1)(uStack_14 >> 0x18);\n  plStack_48 = param_1;\n  pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));\n  if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }\n  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n  *(int **)pcVar5 = piVar8;\n  *(uint *)(pcVar5 + 4) = uStack_14;\n  return pcVar5;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "ctype *pcVar2;" (type_identifier "ctype") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "ctype *pcVar5;" (type_identifier "ctype") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined4 unaff_s0;" (type_identifier "undefined4") (identifier "unaff_s0") (; ";")) (declaration "undefined1 uVar9;" (type_identifier "undefined1") (identifier "uVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *unaff_retaddr;" (primitive_type "int") (pointer_declarator "*unaff_retaddr" (* "*") (identifier "unaff_retaddr")) (; ";")) (declaration "int *piStackX_0;" (primitive_type "int") (pointer_declarator "*piStackX_0" (* "*") (identifier "piStackX_0")) (; ";")) (declaration "int *piStack_58;" (primitive_type "int") (pointer_declarator "*piStack_58" (* "*") (identifier "piStack_58")) (; ";")) (declaration "byte bStack_54;" (type_identifier "byte") (identifier "bStack_54") (; ";")) (declaration "int iStack_50;" (primitive_type "int") (identifier "iStack_50") (; ";")) (declaration "locale *plStack_48;" (type_identifier "locale") (pointer_declarator "*plStack_48" (* "*") (identifier "plStack_48")) (; ";")) (declaration "uint uStack_14;" (type_identifier "uint") (identifier "uStack_14") (; ";")) (declaration "undefined4 uStack_c;" (type_identifier "undefined4") (identifier "uStack_c") (; ";")) (expression_statement "uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);" (assignment_expression "uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38)" (identifier "uVar1") (= "=") (call_expression "(*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38)" (parenthesized_expression "(*(code *)PTR__M_id_004c2c74)" (( "(") (pointer_expression "*(code *)PTR__M_id_004c2c74" (* "*") (cast_expression "(code *)PTR__M_id_004c2c74" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_id_004c2c74"))) () ")")) (argument_list "(PTR_id_004c2f38)" (( "(") (identifier "PTR_id_004c2f38") () ")")))) (; ";")) (if_statement "if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {\n                    \n    __throw_bad_cast();\n  }" (if "if") (parenthesized_expression "((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0))" (( "(") (binary_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)" (parenthesized_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1)" (( "(") (binary_expression "*(uint *)(*(int *)param_1 + 8) <= uVar1" (pointer_expression "*(uint *)(*(int *)param_1 + 8)" (* "*") (cast_expression "(uint *)(*(int *)param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1 + 8)" (( "(") (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (+ "+") (number_literal "8")) () ")")))) (<= "<=") (identifier "uVar1")) () ")")) (|| "||") (parenthesized_expression "(pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)" (( "(") (comma_expression "pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0" (assignment_expression "pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" (identifier "pcVar5") (= "=") (pointer_expression "*(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" (* "*") (cast_expression "(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" (( "(") (type_descriptor "ctype **" (type_identifier "ctype") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" (( "(") (binary_expression "*(int *)(*(int *)param_1 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*(int *)param_1 + 4)" (* "*") (cast_expression "(int *)(*(int *)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1 + 4)" (( "(") (binary_expression "*(int *)param_1 + 4" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "uVar1 * 4" (identifier "uVar1") (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "pcVar5 == (ctype *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(ctype *)0x0" (( "(") (type_descriptor "ctype *" (type_identifier "ctype") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n                    \n    __throw_bad_cast();\n  }" ({ "{") (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" (identifier "__throw_bad_cast") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uStack_14 = 0;" (assignment_expression "uStack_14 = 0" (identifier "uStack_14") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6 = (int *)PTR_PTR_004c1364;" (assignment_expression "piVar6 = (int *)PTR_PTR_004c1364" (identifier "piVar6") (= "=") (cast_expression "(int *)PTR_PTR_004c1364" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_PTR_004c1364"))) (; ";")) (expression_statement "piVar8 = (int *)PTR_PTR_004c2f3c;" (assignment_expression "piVar8 = (int *)PTR_PTR_004c2f3c" (identifier "piVar8") (= "=") (cast_expression "(int *)PTR_PTR_004c2f3c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_PTR_004c2f3c"))) (; ";")) (expression_statement "pcVar2 = (ctype *)__dynamic_cast();" (assignment_expression "pcVar2 = (ctype *)__dynamic_cast()" (identifier "pcVar2") (= "=") (cast_expression "(ctype *)__dynamic_cast()" (( "(") (type_descriptor "ctype *" (type_identifier "ctype") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__dynamic_cast()" (identifier "__dynamic_cast") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pcVar2 != (ctype *)0x0) {\n    return pcVar2;\n  }" (if "if") (parenthesized_expression "(pcVar2 != (ctype *)0x0)" (( "(") (binary_expression "pcVar2 != (ctype *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(ctype *)0x0" (( "(") (type_descriptor "ctype *" (type_identifier "ctype") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return pcVar2;\n  }" ({ "{") (return_statement "return pcVar2;" (return "return") (identifier "pcVar2") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___cxa_bad_cast_004c2c80)();" (call_expression "(*(code *)PTR___cxa_bad_cast_004c2c80)()" (parenthesized_expression "(*(code *)PTR___cxa_bad_cast_004c2c80)" (( "(") (pointer_expression "*(code *)PTR___cxa_bad_cast_004c2c80" (* "*") (cast_expression "(code *)PTR___cxa_bad_cast_004c2c80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___cxa_bad_cast_004c2c80"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar1 = uStack_14 >> 0x18;" (assignment_expression "uVar1 = uStack_14 >> 0x18" (identifier "uVar1") (= "=") (binary_expression "uStack_14 >> 0x18" (identifier "uStack_14") (>> ">>") (number_literal "0x18"))) (; ";")) (expression_statement "uVar9 = (undefined1)(uStack_14 >> 0x18);" (assignment_expression "uVar9 = (undefined1)(uStack_14 >> 0x18)" (identifier "uVar9") (= "=") (call_expression "(undefined1)(uStack_14 >> 0x18)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uStack_14 >> 0x18)" (( "(") (binary_expression "uStack_14 >> 0x18" (identifier "uStack_14") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "plStack_48 = param_1;" (assignment_expression "plStack_48 = param_1" (identifier "plStack_48") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));" (binary_expression "pcVar2 = use_facet<std::ctype<wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c))" (assignment_expression "pcVar2 = use_facet<std" (identifier "pcVar2") (= "=") (binary_expression "use_facet<std" (identifier "use_facet") (< "<") (identifier "std"))) (ERROR "::ctype" (: ":") (: ":") (identifier "ctype")) (< "<") (binary_expression "wchar_t>>\n                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c))" (identifier "wchar_t") (>> ">>") (parenthesized_expression "((locale *)(gold::Position_dependent_options::default_options_ + 0x327c))" (( "(") (cast_expression "(locale *)(gold::Position_dependent_options::default_options_ + 0x327c)" (( "(") (type_descriptor "locale *" (type_identifier "locale") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(gold::Position_dependent_options::default_options_ + 0x327c)" (( "(") (ERROR "gold::Position_dependent_options::" (identifier "gold") (: ":") (: ":") (identifier "Position_dependent_options") (: ":") (: ":")) (binary_expression "default_options_ + 0x327c" (identifier "default_options_") (+ "+") (number_literal "0x327c")) () ")"))) () ")")))) (; ";")) (if_statement "if (unaff_retaddr != piStackX_0) {\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }" (if "if") (parenthesized_expression "(unaff_retaddr != piStackX_0)" (( "(") (binary_expression "unaff_retaddr != piStackX_0" (identifier "unaff_retaddr") (!= "!=") (identifier "piStackX_0")) () ")")) (compound_statement "{\n    do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);\n  }" ({ "{") (do_statement "do {\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    } while (piStackX_0 != piVar10);" (do "do") (compound_statement "{\n      uVar9 = (undefined1)uVar1;\n      piVar10 = unaff_retaddr + 1;\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);\n      if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }\n      uVar9 = (undefined1)uVar1;\n      unaff_retaddr = piVar10;\n    }" ({ "{") (expression_statement "uVar9 = (undefined1)uVar1;" (assignment_expression "uVar9 = (undefined1)uVar1" (identifier "uVar9") (= "=") (cast_expression "(undefined1)uVar1" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar1"))) (; ";")) (expression_statement "piVar10 = unaff_retaddr + 1;" (assignment_expression "piVar10 = unaff_retaddr + 1" (identifier "piVar10") (= "=") (binary_expression "unaff_retaddr + 1" (identifier "unaff_retaddr") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x30)" (( "(") (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(pcVar2,*unaff_retaddr,0)" (( "(") (identifier "pcVar2") (, ",") (pointer_expression "*unaff_retaddr" (* "*") (identifier "unaff_retaddr")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0x25) {\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }\n      else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" (if "if") (parenthesized_expression "(iVar3 == 0x25)" (( "(") (binary_expression "iVar3 == 0x25" (identifier "iVar3") (== "==") (number_literal "0x25")) () ")")) (compound_statement "{\n        if (piStackX_0 == piVar10) break;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);\n        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }\n        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);\n        piVar10 = piVar10 + 1;\n        (**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);\n        uVar1 = (uint)bStack_54;\n        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);\n        piVar8 = piStack_58;\n      }" ({ "{") (if_statement "if (piStackX_0 == piVar10) break;" (if "if") (parenthesized_expression "(piStackX_0 == piVar10)" (( "(") (binary_expression "piStackX_0 == piVar10" (identifier "piStackX_0") (== "==") (identifier "piVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x30)" (( "(") (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(pcVar2,unaff_retaddr[1],0)" (( "(") (identifier "pcVar2") (, ",") (subscript_expression "unaff_retaddr[1]" (identifier "unaff_retaddr") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }" (if "if") (parenthesized_expression "((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f))" (( "(") (binary_expression "(iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)" (parenthesized_expression "(iVar3 == 0x45)" (( "(") (binary_expression "iVar3 == 0x45" (identifier "iVar3") (== "==") (number_literal "0x45")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = 0, iVar3 == 0x4f)" (( "(") (comma_expression "iVar4 = 0, iVar3 == 0x4f" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (, ",") (binary_expression "iVar3 == 0x4f" (identifier "iVar3") (== "==") (number_literal "0x4f"))) () ")"))) () ")")) (compound_statement "{\n          piVar10 = unaff_retaddr + 2;\n          if (piStackX_0 == piVar10) break;\n          iStack_50 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);\n          iVar4 = iStack_50;\n        }" ({ "{") (expression_statement "piVar10 = unaff_retaddr + 2;" (assignment_expression "piVar10 = unaff_retaddr + 2" (identifier "piVar10") (= "=") (binary_expression "unaff_retaddr + 2" (identifier "unaff_retaddr") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (piStackX_0 == piVar10) break;" (if "if") (parenthesized_expression "(piStackX_0 == piVar10)" (( "(") (binary_expression "piStackX_0 == piVar10" (identifier "piStackX_0") (== "==") (identifier "piVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iStack_50 = iVar3;" (assignment_expression "iStack_50 = iVar3" (identifier "iStack_50") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x30)" (( "(") (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(pcVar2,unaff_retaddr[2],0)" (( "(") (identifier "pcVar2") (, ",") (subscript_expression "unaff_retaddr[2]" (identifier "unaff_retaddr") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar4 = iStack_50;" (assignment_expression "iVar4 = iStack_50" (identifier "iVar4") (= "=") (identifier "iStack_50")) (; ";")) (} "}"))) (expression_statement "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_)" (identifier "uStack_14") (= "=") (call_expression "CONCAT13(uVar9,uStack_14._1_3_)" (identifier "CONCAT13") (argument_list "(uVar9,uStack_14._1_3_)" (( "(") (identifier "uVar9") (, ",") (field_expression "uStack_14._1_3_" (identifier "uStack_14") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" (identifier "piVar10") (= "=") (binary_expression "piVar10 + 1" (identifier "piVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);" (call_expression "(**(code **)(*piVar6 + 8))\n                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4)" (parenthesized_expression "(**(code **)(*piVar6 + 8))" (( "(") (pointer_expression "**(code **)(*piVar6 + 8)" (* "*") (pointer_expression "*(code **)(*piVar6 + 8)" (* "*") (cast_expression "(code **)(*piVar6 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar6 + 8)" (( "(") (binary_expression "*piVar6 + 8" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4)" (( "(") (pointer_expression "&piStack_58" (& "&") (identifier "piStack_58")) (, ",") (identifier "piVar6") (, ",") (identifier "piVar8") (, ",") (identifier "uStack_14") (, ",") (number_literal "0x4c9240") (, ",") (identifier "uStack_c") (, ",") (identifier "unaff_s0") (, ",") (identifier "iVar3") (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "uVar1 = (uint)bStack_54;" (assignment_expression "uVar1 = (uint)bStack_54" (identifier "uVar1") (= "=") (cast_expression "(uint)bStack_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_54"))) (; ";")) (expression_statement "uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_)" (identifier "uStack_14") (= "=") (call_expression "CONCAT13(bStack_54,uStack_14._1_3_)" (identifier "CONCAT13") (argument_list "(bStack_54,uStack_14._1_3_)" (( "(") (identifier "bStack_54") (, ",") (field_expression "uStack_14._1_3_" (identifier "uStack_14") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "piVar8 = piStack_58;" (assignment_expression "piVar8 = piStack_58" (identifier "piVar8") (= "=") (identifier "piStack_58")) (; ";")) (} "}")) (else_clause "else if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" (else "else") (if_statement "if (uVar1 == 0) {\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" (if "if") (parenthesized_expression "(uVar1 == 0)" (( "(") (binary_expression "uVar1 == 0" (identifier "uVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar7 = (int *)piVar8[5];\n        iVar3 = *unaff_retaddr;\n        if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }\n        uVar1 = (uint)(iVar3 == -1);\n      }" ({ "{") (expression_statement "piVar7 = (int *)piVar8[5];" (assignment_expression "piVar7 = (int *)piVar8[5]" (identifier "piVar7") (= "=") (cast_expression "(int *)piVar8[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[5]" (identifier "piVar8") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "iVar3 = *unaff_retaddr;" (assignment_expression "iVar3 = *unaff_retaddr" (identifier "iVar3") (= "=") (pointer_expression "*unaff_retaddr" (* "*") (identifier "unaff_retaddr"))) (; ";")) (if_statement "if (piVar7 < (int *)piVar8[6]) {\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }\n        else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" (if "if") (parenthesized_expression "(piVar7 < (int *)piVar8[6])" (( "(") (binary_expression "piVar7 < (int *)piVar8[6]" (identifier "piVar7") (< "<") (cast_expression "(int *)piVar8[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[6]" (identifier "piVar8") ([ "[") (number_literal "6") (] "]")))) () ")")) (compound_statement "{\n          *piVar7 = iVar3;\n          piVar8[5] = (int)(piVar7 + 1);\n        }" ({ "{") (expression_statement "*piVar7 = iVar3;" (assignment_expression "*piVar7 = iVar3" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piVar8[5] = (int)(piVar7 + 1);" (assignment_expression "piVar8[5] = (int)(piVar7 + 1)" (subscript_expression "piVar8[5]" (identifier "piVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)(piVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar7 + 1)" (( "(") (binary_expression "piVar7 + 1" (identifier "piVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" (else "else") (compound_statement "{\n          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);\n        }" ({ "{") (expression_statement "iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*piVar8 + 0x34))(piVar8,iVar3)" (parenthesized_expression "(**(code **)(*piVar8 + 0x34))" (( "(") (pointer_expression "**(code **)(*piVar8 + 0x34)" (* "*") (pointer_expression "*(code **)(*piVar8 + 0x34)" (* "*") (cast_expression "(code **)(*piVar8 + 0x34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0x34)" (( "(") (binary_expression "*piVar8 + 0x34" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (argument_list "(piVar8,iVar3)" (( "(") (identifier "piVar8") (, ",") (identifier "iVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar1 = (uint)(iVar3 == -1);" (assignment_expression "uVar1 = (uint)(iVar3 == -1)" (identifier "uVar1") (= "=") (call_expression "(uint)(iVar3 == -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")))) (; ";")) (} "}"))))) (expression_statement "uVar9 = (undefined1)uVar1;" (assignment_expression "uVar9 = (undefined1)uVar1" (identifier "uVar9") (= "=") (cast_expression "(undefined1)uVar1" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar1"))) (; ";")) (expression_statement "unaff_retaddr = piVar10;" (assignment_expression "unaff_retaddr = piVar10" (identifier "unaff_retaddr") (= "=") (identifier "piVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piStackX_0 != piVar10)" (( "(") (binary_expression "piStackX_0 != piVar10" (identifier "piStackX_0") (!= "!=") (identifier "piVar10")) () ")")) (; ";")) (} "}"))) (expression_statement "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);" (assignment_expression "uStack_14 = CONCAT13(uVar9,uStack_14._1_3_)" (identifier "uStack_14") (= "=") (call_expression "CONCAT13(uVar9,uStack_14._1_3_)" (identifier "CONCAT13") (argument_list "(uVar9,uStack_14._1_3_)" (( "(") (identifier "uVar9") (, ",") (field_expression "uStack_14._1_3_" (identifier "uStack_14") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "*(int **)pcVar5 = piVar8;" (assignment_expression "*(int **)pcVar5 = piVar8" (pointer_expression "*(int **)pcVar5" (* "*") (cast_expression "(int **)pcVar5" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar5"))) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "*(uint *)(pcVar5 + 4) = uStack_14;" (assignment_expression "*(uint *)(pcVar5 + 4) = uStack_14" (pointer_expression "*(uint *)(pcVar5 + 4)" (* "*") (cast_expression "(uint *)(pcVar5 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar5 + 4)" (( "(") (binary_expression "pcVar5 + 4" (identifier "pcVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uStack_14")) (; ";")) (return_statement "return pcVar5;" (return "return") (identifier "pcVar5") (; ";")) (} "}"))
(translation_unit (ERROR (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (identifier))) right: (parenthesized_expression (comma_expression left: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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: (identifier))) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (binary_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) (ERROR (identifier)) right: (binary_expression left: (identifier) right: (parenthesized_expression (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (ERROR (identifier) (identifier)) (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier) (number_literal) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (return_statement (identifier))))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* std::ctype<wchar_t> const& std::use_facet<std::ctype<wchar_t> >(std::locale const&) */

ctype * std::MASKED(locale *param_1)

{
  uint uVar1;
  ctype *pcVar2;
  int iVar3;
  int iVar4;
  ctype *pcVar5;
  int *piVar6;
  int *piVar7;
  int *piVar8;
  undefined4 unaff_s0;
  undefined1 uVar9;
  int *piVar10;
  int *unaff_retaddr;
  int *piStackX_0;
  int *piStack_58;
  byte bStack_54;
  int iStack_50;
  locale *plStack_48;
  uint uStack_14;
  undefined4 uStack_c;
  
  uVar1 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c2f38);
  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||
     (pcVar5 = *(ctype **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), pcVar5 == (ctype *)0x0)) {
                    /* WARNING: Subroutine does not return */
    __throw_bad_cast();
  }
  uStack_14 = 0;
  piVar6 = (int *)PTR_PTR_004c1364;
  piVar8 = (int *)PTR_PTR_004c2f3c;
  pcVar2 = (ctype *)__dynamic_cast();
  if (pcVar2 != (ctype *)0x0) {
    return pcVar2;
  }
  (*(code *)PTR___cxa_bad_cast_004c2c80)();
  uVar1 = uStack_14 >> 0x18;
  uVar9 = (undefined1)(uStack_14 >> 0x18);
  plStack_48 = param_1;
  pcVar2 = MASKED
                     ((locale *)(gold::Position_dependent_options::default_options_ + 0x327c));
  if (unaff_retaddr != piStackX_0) {
    do {
      uVar9 = (undefined1)uVar1;
      piVar10 = unaff_retaddr + 1;
      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*unaff_retaddr,0);
      if (iVar3 == 0x25) {
        if (piStackX_0 == piVar10) break;
        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[1],0);
        if ((iVar3 == 0x45) || (iVar4 = 0, iVar3 == 0x4f)) {
          piVar10 = unaff_retaddr + 2;
          if (piStackX_0 == piVar10) break;
          iStack_50 = iVar3;
          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,unaff_retaddr[2],0);
          iVar4 = iStack_50;
        }
        uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);
        piVar10 = piVar10 + 1;
        (**(code **)(*piVar6 + 8))
                  (&piStack_58,piVar6,piVar8,uStack_14,0x4c9240,uStack_c,unaff_s0,iVar3,iVar4);
        uVar1 = (uint)bStack_54;
        uStack_14 = CONCAT13(bStack_54,uStack_14._1_3_);
        piVar8 = piStack_58;
      }
      else if (uVar1 == 0) {
        piVar7 = (int *)piVar8[5];
        iVar3 = *unaff_retaddr;
        if (piVar7 < (int *)piVar8[6]) {
          *piVar7 = iVar3;
          piVar8[5] = (int)(piVar7 + 1);
        }
        else {
          iVar3 = (**(code **)(*piVar8 + 0x34))(piVar8,iVar3);
        }
        uVar1 = (uint)(iVar3 == -1);
      }
      uVar9 = (undefined1)uVar1;
      unaff_retaddr = piVar10;
    } while (piStackX_0 != piVar10);
  }
  uStack_14 = CONCAT13(uVar9,uStack_14._1_3_);
  *(int **)pcVar5 = piVar8;
  *(uint *)(pcVar5 + 4) = uStack_14;
  return pcVar5;
}

