
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: size_t count_members(Archive * this) */

size_t __thiscall gold::Archive::count_members(Archive *this)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  bool bVar7;
  size_t local_a8;
  const_iterator p;
  const_iterator local_58;
  
  paVar1 = &p.header_.name.field_2;
  p.archive_ = this;
  p.off_._0_4_ = 8;
  p.off_._4_4_ = 0;
  p.header_.name._M_string_length = 0;
  p.header_.name.field_2._M_local_buf[0] = '\0';
  p.header_.name._M_dataplus._M_p = (pointer)paVar1;
                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */
  const_iterator::read_next_header(&p);
  paVar2 = &local_58.header_.name.field_2;
  local_a8 = 0;
  while( true ) {
    local_58.archive_ = this;
    local_58.off_._4_4_ = *(undefined4 *)((int)&(this->input_file_->file_).size_ + 4);
    local_58.off_._0_4_ = (undefined4)(this->input_file_->file_).size_;
    local_58.header_.name._M_string_length = 0;
    local_58.header_.name.field_2._M_local_buf[0] = '\0';
    local_58.header_.name._M_dataplus._M_p = (pointer)paVar2;
                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */
    const_iterator::read_next_header(&local_58);
    iVar6 = local_58.header_.off._4_4_;
    uVar5 = (uint)local_58.header_.off;
    iVar4 = p.off_._4_4_;
    uVar3 = (uint)p.off_;
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)local_58.header_.name._M_dataplus._M_p != paVar2) {
      operator_delete(local_58.header_.name._M_dataplus._M_p);
    }
    if (uVar5 == uVar3 && iVar4 == iVar6) break;
    local_a8 = local_a8 + 1;
    if (*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||
        (uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_) {
      bVar7 = 0xffffffc3 < (uint)p.off_;
      p.off_._0_4_ = (uint)p.off_ + 0x3c;
      p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;
      if ((p.archive_)->is_thin_archive_ == false) {
        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);
        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;
        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;
      }
      if (((uint)p.off_ & 1) != 0) {
        bVar7 = 0xfffffffe < (uint)p.off_;
        p.off_._0_4_ = (uint)p.off_ + 1;
        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;
      }
                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */
      const_iterator::read_next_header(&p);
    }
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)p.header_.name._M_dataplus._M_p != paVar1) {
    operator_delete(p.header_.name._M_dataplus._M_p);
  }
  return local_a8;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

int FUN_00194ba0(int param_1)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  bool bVar5;
  int local_a8;
  int local_94;
  uint local_90;
  int local_8c;
  undefined1 *local_88;
  undefined4 local_84;
  undefined1 local_80 [32];
  uint local_60;
  int local_5c;
  int local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined1 *local_4c;
  undefined4 local_48;
  undefined1 local_44 [16];
  uint local_34;
  int local_30;
  
  local_94 = param_1;
  local_90 = 8;
  local_8c = 0;
  local_84 = 0;
  local_80[0] = 0;
  local_88 = local_80;
                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */
  FUN_001947a0(&local_94);
  local_a8 = 0;
  while( true ) {
    local_58 = param_1;
    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);
    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);
    local_48 = 0;
    local_44[0] = 0;
    local_4c = local_44;
                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */
    FUN_001947a0(&local_58);
    iVar4 = local_30;
    uVar3 = local_34;
    iVar2 = local_8c;
    uVar1 = local_90;
    if (local_4c != local_44) {
      FUN_001e6db0(local_4c);
    }
    if (uVar3 == uVar1 && iVar2 == iVar4) break;
    local_a8 = local_a8 + 1;
    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||
        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {
      bVar5 = 0xffffffc3 < local_90;
      local_90 = local_90 + 0x3c;
      local_8c = local_8c + (uint)bVar5;
      if (*(char *)(local_94 + 0xac) == '\0') {
        bVar5 = CARRY4(local_90,local_60);
        local_90 = local_90 + local_60;
        local_8c = local_8c + local_5c + (uint)bVar5;
      }
      if ((local_90 & 1) != 0) {
        bVar5 = 0xfffffffe < local_90;
        local_90 = local_90 + 1;
        local_8c = local_8c + (uint)bVar5;
      }
                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */
      FUN_001947a0(&local_94);
    }
  }
  if (local_88 != local_80) {
    FUN_001e6db0(local_88);
  }
  return local_a8;
}


CALL 0x000559e6
ADD EAX,0x1fa45b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
LEA EDI,[EBP + -0x7c]
PUSH EBX
SUB ESP,0xc8
MOV dword ptr [EBP + 0xffffff48],EAX
MOV ESI,dword ptr [EBP + 0x8]
LEA EAX,[EBP + 0xffffff70]
PUSH EAX
MOV dword ptr [EBP + 0xffffff70],ESI
MOV dword ptr [EBP + 0xffffff74],0x8
MOV dword ptr [EBP + 0xffffff78],0x0
MOV dword ptr [EBP + 0xffffff4c],EAX
MOV dword ptr [EBP + 0xffffff44],EDI
MOV dword ptr [EBP + 0xffffff7c],EDI
MOV dword ptr [EBP + -0x80],0x0
MOV byte ptr [EBP + -0x7c],0x0
CALL 0x001947a0
LEA EAX,[EBP + -0x54]
ADD ESP,0x10
LEA EDI,[EBP + -0x40]
MOV dword ptr [EBP + 0xffffff5c],0x0
MOV dword ptr [EBP + 0xffffff58],EAX
NOP
MOV EAX,dword ptr [ESI + 0x24]
SUB ESP,0xc
MOV dword ptr [EBP + -0x54],ESI
MOV dword ptr [EBP + -0x48],EDI
MOV EDX,dword ptr [EAX + 0x44]
MOV EAX,dword ptr [EAX + 0x40]
PUSH dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + -0x44],0x0
MOV dword ptr [EBP + -0x50],EAX
MOV dword ptr [EBP + -0x4c],EDX
MOV byte ptr [EBP + -0x40],0x0
CALL 0x001947a0
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV EBX,dword ptr [EBP + -0x48]
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x30]
MOV EDX,dword ptr [EBP + -0x2c]
MOV dword ptr [EBP + 0xffffff64],EAX
MOV EAX,dword ptr [EBP + 0xffffff78]
CMP EBX,EDI
JZ 0x00194ca6
SUB ESP,0xc
MOV dword ptr [EBP + 0xffffff50],EDX
PUSH EBX
MOV EBX,dword ptr [EBP + 0xffffff48]
MOV dword ptr [EBP + 0xffffff54],ECX
MOV dword ptr [EBP + 0xffffff60],EAX
CALL 0x001e6db0
MOV EDX,dword ptr [EBP + 0xffffff50]
MOV ECX,dword ptr [EBP + 0xffffff54]
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff60]
XOR ECX,dword ptr [EBP + 0xffffff64]
XOR EAX,EDX
OR ECX,EAX
JZ 0x00194d60
MOV EBX,dword ptr [EBP + 0xffffff70]
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV EDX,dword ptr [EBP + 0xffffff78]
ADD dword ptr [EBP + 0xffffff5c],0x1
MOV ECX,dword ptr [EBX + 0x24]
MOV dword ptr [EBP + 0xffffff60],EBX
MOV EBX,dword ptr [ECX + 0x40]
XOR EBX,EAX
MOV dword ptr [EBP + 0xffffff64],EBX
MOV EBX,dword ptr [ECX + 0x44]
XOR EBX,EDX
MOV ECX,EBX
OR ECX,dword ptr [EBP + 0xffffff64]
JZ 0x00194c20
MOV EBX,dword ptr [EBP + 0xffffff60]
ADD EAX,0x3c
ADC EDX,0x0
MOV dword ptr [EBP + 0xffffff74],EAX
CMP byte ptr [EBX + 0xac],0x0
MOV dword ptr [EBP + 0xffffff78],EDX
JNZ 0x00194d29
ADD EAX,dword ptr [EBP + -0x5c]
ADC EDX,dword ptr [EBP + -0x58]
MOV dword ptr [EBP + 0xffffff74],EAX
MOV dword ptr [EBP + 0xffffff78],EDX
MOV ECX,EAX
AND ECX,0x1
JZ 0x00194d42
ADD EAX,0x1
ADC EDX,0x0
MOV dword ptr [EBP + 0xffffff74],EAX
MOV dword ptr [EBP + 0xffffff78],EDX
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff4c]
CALL 0x001947a0
ADD ESP,0x10
JMP 0x00194c20
MOV EAX,dword ptr [EBP + 0xffffff7c]
CMP EAX,dword ptr [EBP + 0xffffff44]
JZ 0x00194d80
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff48]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff5c]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nint FUN_00194ba0(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  int local_a8;\n  int local_94;\n  uint local_90;\n  int local_8c;\n  undefined1 *local_88;\n  undefined4 local_84;\n  undefined1 local_80 [32];\n  uint local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  uint local_34;\n  int local_30;\n  \n  local_94 = param_1;\n  local_90 = 8;\n  local_8c = 0;\n  local_84 = 0;\n  local_80[0] = 0;\n  local_88 = local_80;\n                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */\n  FUN_001947a0(&local_94);\n  local_a8 = 0;\n  while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      FUN_001947a0(&local_94);\n    }\n  }\n  if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }\n  return local_a8;\n}\n\n" comment (function_definition "int FUN_00194ba0(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  int local_a8;\n  int local_94;\n  uint local_90;\n  int local_8c;\n  undefined1 *local_88;\n  undefined4 local_84;\n  undefined1 local_80 [32];\n  uint local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  uint local_34;\n  int local_30;\n  \n  local_94 = param_1;\n  local_90 = 8;\n  local_8c = 0;\n  local_84 = 0;\n  local_80[0] = 0;\n  local_88 = local_80;\n                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */\n  FUN_001947a0(&local_94);\n  local_a8 = 0;\n  while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      FUN_001947a0(&local_94);\n    }\n  }\n  if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }\n  return local_a8;\n}" primitive_type (function_declarator "FUN_00194ba0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  int local_a8;\n  int local_94;\n  uint local_90;\n  int local_8c;\n  undefined1 *local_88;\n  undefined4 local_84;\n  undefined1 local_80 [32];\n  uint local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  uint local_34;\n  int local_30;\n  \n  local_94 = param_1;\n  local_90 = 8;\n  local_8c = 0;\n  local_84 = 0;\n  local_80[0] = 0;\n  local_88 = local_80;\n                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */\n  FUN_001947a0(&local_94);\n  local_a8 = 0;\n  while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      FUN_001947a0(&local_94);\n    }\n  }\n  if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }\n  return local_a8;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "undefined1 *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined4 local_84;" type_identifier identifier ;) (declaration "undefined1 local_80 [32];" type_identifier (array_declarator "local_80 [32]" identifier [ number_literal ]) ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined1 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (expression_statement "local_94 = param_1;" (assignment_expression "local_94 = param_1" identifier = identifier) ;) (expression_statement "local_90 = 8;" (assignment_expression "local_90 = 8" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_80[0] = 0;" (assignment_expression "local_80[0] = 0" (subscript_expression "local_80[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88 = local_80;" (assignment_expression "local_88 = local_80" identifier = identifier) ;) comment (expression_statement "FUN_001947a0(&local_94);" (call_expression "FUN_001947a0(&local_94)" identifier (argument_list "(&local_94)" ( (pointer_expression "&local_94" & identifier) ))) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      FUN_001947a0(&local_94);\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      FUN_001947a0(&local_94);\n    }\n  }" { (expression_statement "local_58 = param_1;" (assignment_expression "local_58 = param_1" identifier = identifier) ;) (expression_statement "local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);" (assignment_expression "local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x24) + 0x44)" ( (binary_expression "*(int *)(param_1 + 0x24) + 0x44" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);" (assignment_expression "local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x24) + 0x40)" ( (binary_expression "*(int *)(param_1 + 0x24) + 0x40" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_4c = local_44;" (assignment_expression "local_4c = local_44" identifier = identifier) ;) comment (expression_statement "FUN_001947a0(&local_58);" (call_expression "FUN_001947a0(&local_58)" identifier (argument_list "(&local_58)" ( (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "iVar4 = local_30;" (assignment_expression "iVar4 = local_30" identifier = identifier) ;) (expression_statement "uVar3 = local_34;" (assignment_expression "uVar3 = local_34" identifier = identifier) ;) (expression_statement "iVar2 = local_8c;" (assignment_expression "iVar2 = local_8c" identifier = identifier) ;) (expression_statement "uVar1 = local_90;" (assignment_expression "uVar1 = local_90" identifier = identifier) ;) (if_statement "if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }" if (parenthesized_expression "(local_4c != local_44)" ( (binary_expression "local_4c != local_44" identifier != identifier) )) (compound_statement "{\n      FUN_001e6db0(local_4c);\n    }" { (expression_statement "FUN_001e6db0(local_4c);" (call_expression "FUN_001e6db0(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) })) (if_statement "if (uVar3 == uVar1 && iVar2 == iVar4) break;" if (parenthesized_expression "(uVar3 == uVar1 && iVar2 == iVar4)" ( (binary_expression "uVar3 == uVar1 && iVar2 == iVar4" (binary_expression "uVar3 == uVar1" identifier == identifier) && (binary_expression "iVar2 == iVar4" identifier == identifier)) )) (break_statement "break;" break ;)) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      FUN_001947a0(&local_94);\n    }" if (parenthesized_expression "(*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90)" ( (binary_expression "*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90" (binary_expression "*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c" (pointer_expression "*(int *)(*(int *)(local_94 + 0x24) + 0x44)" * (cast_expression "(int *)(*(int *)(local_94 + 0x24) + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_94 + 0x24) + 0x44)" ( (binary_expression "*(int *)(local_94 + 0x24) + 0x44" (pointer_expression "*(int *)(local_94 + 0x24)" * (cast_expression "(int *)(local_94 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x24)" ( (binary_expression "local_94 + 0x24" identifier + number_literal) )))) + number_literal) )))) != identifier) || (binary_expression "*(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90" (pointer_expression "*(uint *)(*(int *)(local_94 + 0x24) + 0x40)" * (cast_expression "(uint *)(*(int *)(local_94 + 0x24) + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_94 + 0x24) + 0x40)" ( (binary_expression "*(int *)(local_94 + 0x24) + 0x40" (pointer_expression "*(int *)(local_94 + 0x24)" * (cast_expression "(int *)(local_94 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x24)" ( (binary_expression "local_94 + 0x24" identifier + number_literal) )))) + number_literal) )))) != identifier)) )) (compound_statement "{\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      FUN_001947a0(&local_94);\n    }" { (expression_statement "bVar5 = 0xffffffc3 < local_90;" (assignment_expression "bVar5 = 0xffffffc3 < local_90" identifier = (binary_expression "0xffffffc3 < local_90" number_literal < identifier)) ;) (expression_statement "local_90 = local_90 + 0x3c;" (assignment_expression "local_90 = local_90 + 0x3c" identifier = (binary_expression "local_90 + 0x3c" identifier + number_literal)) ;) (expression_statement "local_8c = local_8c + (uint)bVar5;" (assignment_expression "local_8c = local_8c + (uint)bVar5" identifier = (binary_expression "local_8c + (uint)bVar5" identifier + (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }" if (parenthesized_expression "(*(char *)(local_94 + 0xac) == '\0')" ( (binary_expression "*(char *)(local_94 + 0xac) == '\0'" (pointer_expression "*(char *)(local_94 + 0xac)" * (cast_expression "(char *)(local_94 + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0xac)" ( (binary_expression "local_94 + 0xac" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }" { (expression_statement "bVar5 = CARRY4(local_90,local_60);" (assignment_expression "bVar5 = CARRY4(local_90,local_60)" identifier = (call_expression "CARRY4(local_90,local_60)" identifier (argument_list "(local_90,local_60)" ( identifier , identifier )))) ;) (expression_statement "local_90 = local_90 + local_60;" (assignment_expression "local_90 = local_90 + local_60" identifier = (binary_expression "local_90 + local_60" identifier + identifier)) ;) (expression_statement "local_8c = local_8c + local_5c + (uint)bVar5;" (assignment_expression "local_8c = local_8c + local_5c + (uint)bVar5" identifier = (binary_expression "local_8c + local_5c + (uint)bVar5" (binary_expression "local_8c + local_5c" identifier + identifier) + (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (if_statement "if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }" if (parenthesized_expression "((local_90 & 1) != 0)" ( (binary_expression "(local_90 & 1) != 0" (parenthesized_expression "(local_90 & 1)" ( (binary_expression "local_90 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }" { (expression_statement "bVar5 = 0xfffffffe < local_90;" (assignment_expression "bVar5 = 0xfffffffe < local_90" identifier = (binary_expression "0xfffffffe < local_90" number_literal < identifier)) ;) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (expression_statement "local_8c = local_8c + (uint)bVar5;" (assignment_expression "local_8c = local_8c + (uint)bVar5" identifier = (binary_expression "local_8c + (uint)bVar5" identifier + (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) comment (expression_statement "FUN_001947a0(&local_94);" (call_expression "FUN_001947a0(&local_94)" identifier (argument_list "(&local_94)" ( (pointer_expression "&local_94" & identifier) ))) ;) })) })) (if_statement "if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }" if (parenthesized_expression "(local_88 != local_80)" ( (binary_expression "local_88 != local_80" identifier != identifier) )) (compound_statement "{\n    FUN_001e6db0(local_88);\n  }" { (expression_statement "FUN_001e6db0(local_88);" (call_expression "FUN_001e6db0(local_88)" identifier (argument_list "(local_88)" ( identifier ))) ;) })) (return_statement "return local_a8;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original prototype: size_t count_members(Archive * this) */\n\nsize_t __thiscall gold::Archive::count_members(Archive *this)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  bool bVar7;\n  size_t local_a8;\n  const_iterator p;\n  const_iterator local_58;\n  \n  paVar1 = &p.header_.name.field_2;\n  p.archive_ = this;\n  p.off_._0_4_ = 8;\n  p.off_._4_4_ = 0;\n  p.header_.name._M_string_length = 0;\n  p.header_.name.field_2._M_local_buf[0] = '\0';\n  p.header_.name._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */\n  const_iterator::read_next_header(&p);\n  paVar2 = &local_58.header_.name.field_2;\n  local_a8 = 0;\n  while( true ) {\n    local_58.archive_ = this;\n    local_58.off_._4_4_ = *(undefined4 *)((int)&(this->input_file_->file_).size_ + 4);\n    local_58.off_._0_4_ = (undefined4)(this->input_file_->file_).size_;\n    local_58.header_.name._M_string_length = 0;\n    local_58.header_.name.field_2._M_local_buf[0] = '\0';\n    local_58.header_.name._M_dataplus._M_p = (pointer)paVar2;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    const_iterator::read_next_header(&local_58);\n    iVar6 = local_58.header_.off._4_4_;\n    uVar5 = (uint)local_58.header_.off;\n    iVar4 = p.off_._4_4_;\n    uVar3 = (uint)p.off_;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p != paVar2) {\n      operator_delete(local_58.header_.name._M_dataplus._M_p);\n    }\n    if (uVar5 == uVar3 && iVar4 == iVar6) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||\n        (uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_) {\n      bVar7 = 0xffffffc3 < (uint)p.off_;\n      p.off_._0_4_ = (uint)p.off_ + 0x3c;\n      p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      if ((p.archive_)->is_thin_archive_ == false) {\n        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);\n        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;\n        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;\n      }\n      if (((uint)p.off_ & 1) != 0) {\n        bVar7 = 0xfffffffe < (uint)p.off_;\n        p.off_._0_4_ = (uint)p.off_ + 1;\n        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      const_iterator::read_next_header(&p);\n    }\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)p.header_.name._M_dataplus._M_p != paVar1) {\n    operator_delete(p.header_.name._M_dataplus._M_p);\n  }\n  return local_a8;\n}\n\n" comment comment (function_definition "size_t __thiscall gold::Archive::count_members(Archive *this)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  bool bVar7;\n  size_t local_a8;\n  const_iterator p;\n  const_iterator local_58;\n  \n  paVar1 = &p.header_.name.field_2;\n  p.archive_ = this;\n  p.off_._0_4_ = 8;\n  p.off_._4_4_ = 0;\n  p.header_.name._M_string_length = 0;\n  p.header_.name.field_2._M_local_buf[0] = '\0';\n  p.header_.name._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */\n  const_iterator::read_next_header(&p);\n  paVar2 = &local_58.header_.name.field_2;\n  local_a8 = 0;\n  while( true ) {\n    local_58.archive_ = this;\n    local_58.off_._4_4_ = *(undefined4 *)((int)&(this->input_file_->file_).size_ + 4);\n    local_58.off_._0_4_ = (undefined4)(this->input_file_->file_).size_;\n    local_58.header_.name._M_string_length = 0;\n    local_58.header_.name.field_2._M_local_buf[0] = '\0';\n    local_58.header_.name._M_dataplus._M_p = (pointer)paVar2;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    const_iterator::read_next_header(&local_58);\n    iVar6 = local_58.header_.off._4_4_;\n    uVar5 = (uint)local_58.header_.off;\n    iVar4 = p.off_._4_4_;\n    uVar3 = (uint)p.off_;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p != paVar2) {\n      operator_delete(local_58.header_.name._M_dataplus._M_p);\n    }\n    if (uVar5 == uVar3 && iVar4 == iVar6) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||\n        (uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_) {\n      bVar7 = 0xffffffc3 < (uint)p.off_;\n      p.off_._0_4_ = (uint)p.off_ + 0x3c;\n      p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      if ((p.archive_)->is_thin_archive_ == false) {\n        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);\n        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;\n        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;\n      }\n      if (((uint)p.off_ & 1) != 0) {\n        bVar7 = 0xfffffffe < (uint)p.off_;\n        p.off_._0_4_ = (uint)p.off_ + 1;\n        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      const_iterator::read_next_header(&p);\n    }\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)p.header_.name._M_dataplus._M_p != paVar1) {\n    operator_delete(p.header_.name._M_dataplus._M_p);\n  }\n  return local_a8;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Archive::" identifier : : identifier : :) (function_declarator "count_members(Archive *this)" identifier (parameter_list "(Archive *this)" ( (parameter_declaration "Archive *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  bool bVar7;\n  size_t local_a8;\n  const_iterator p;\n  const_iterator local_58;\n  \n  paVar1 = &p.header_.name.field_2;\n  p.archive_ = this;\n  p.off_._0_4_ = 8;\n  p.off_._4_4_ = 0;\n  p.header_.name._M_string_length = 0;\n  p.header_.name.field_2._M_local_buf[0] = '\0';\n  p.header_.name._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */\n  const_iterator::read_next_header(&p);\n  paVar2 = &local_58.header_.name.field_2;\n  local_a8 = 0;\n  while( true ) {\n    local_58.archive_ = this;\n    local_58.off_._4_4_ = *(undefined4 *)((int)&(this->input_file_->file_).size_ + 4);\n    local_58.off_._0_4_ = (undefined4)(this->input_file_->file_).size_;\n    local_58.header_.name._M_string_length = 0;\n    local_58.header_.name.field_2._M_local_buf[0] = '\0';\n    local_58.header_.name._M_dataplus._M_p = (pointer)paVar2;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    const_iterator::read_next_header(&local_58);\n    iVar6 = local_58.header_.off._4_4_;\n    uVar5 = (uint)local_58.header_.off;\n    iVar4 = p.off_._4_4_;\n    uVar3 = (uint)p.off_;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p != paVar2) {\n      operator_delete(local_58.header_.name._M_dataplus._M_p);\n    }\n    if (uVar5 == uVar3 && iVar4 == iVar6) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||\n        (uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_) {\n      bVar7 = 0xffffffc3 < (uint)p.off_;\n      p.off_._0_4_ = (uint)p.off_ + 0x3c;\n      p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      if ((p.archive_)->is_thin_archive_ == false) {\n        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);\n        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;\n        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;\n      }\n      if (((uint)p.off_ & 1) != 0) {\n        bVar7 = 0xfffffffe < (uint)p.off_;\n        p.off_._0_4_ = (uint)p.off_ + 1;\n        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      const_iterator::read_next_header(&p);\n    }\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)p.header_.name._M_dataplus._M_p != paVar1) {\n    operator_delete(p.header_.name._M_dataplus._M_p);\n  }\n  return local_a8;\n}" { (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar2;" (binary_expression "allocator<char>_>_9\n  *paVar2" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar2" identifier * identifier)) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "size_t local_a8;" primitive_type identifier ;) (declaration "const_iterator p;" type_identifier identifier ;) (declaration "const_iterator local_58;" type_identifier identifier ;) (expression_statement "paVar1 = &p.header_.name.field_2;" (assignment_expression "paVar1 = &p.header_.name.field_2" identifier = (pointer_expression "&p.header_.name.field_2" & (field_expression "p.header_.name.field_2" (field_expression "p.header_.name" (field_expression "p.header_" identifier . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "p.archive_ = this;" (assignment_expression "p.archive_ = this" (field_expression "p.archive_" identifier . field_identifier) = identifier) ;) (expression_statement "p.off_._0_4_ = 8;" (assignment_expression "p.off_._0_4_ = 8" (field_expression "p.off_._0_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "p.off_._4_4_ = 0;" (assignment_expression "p.off_._4_4_ = 0" (field_expression "p.off_._4_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "p.header_.name._M_string_length = 0;" (assignment_expression "p.header_.name._M_string_length = 0" (field_expression "p.header_.name._M_string_length" (field_expression "p.header_.name" (field_expression "p.header_" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "p.header_.name.field_2._M_local_buf[0] = '\0';" (assignment_expression "p.header_.name.field_2._M_local_buf[0] = '\0'" (subscript_expression "p.header_.name.field_2._M_local_buf[0]" (field_expression "p.header_.name.field_2._M_local_buf" (field_expression "p.header_.name.field_2" (field_expression "p.header_.name" (field_expression "p.header_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "p.header_.name._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "p.header_.name._M_dataplus._M_p = (pointer)paVar1" (field_expression "p.header_.name._M_dataplus._M_p" (field_expression "p.header_.name._M_dataplus" (field_expression "p.header_.name" (field_expression "p.header_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) comment (labeled_statement "const_iterator::read_next_header(&p);" statement_identifier : (ERROR ":" :) (expression_statement "read_next_header(&p);" (call_expression "read_next_header(&p)" identifier (argument_list "(&p)" ( (pointer_expression "&p" & identifier) ))) ;)) (expression_statement "paVar2 = &local_58.header_.name.field_2;" (assignment_expression "paVar2 = &local_58.header_.name.field_2" identifier = (pointer_expression "&local_58.header_.name.field_2" & (field_expression "local_58.header_.name.field_2" (field_expression "local_58.header_.name" (field_expression "local_58.header_" identifier . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    local_58.archive_ = this;\n    local_58.off_._4_4_ = *(undefined4 *)((int)&(this->input_file_->file_).size_ + 4);\n    local_58.off_._0_4_ = (undefined4)(this->input_file_->file_).size_;\n    local_58.header_.name._M_string_length = 0;\n    local_58.header_.name.field_2._M_local_buf[0] = '\0';\n    local_58.header_.name._M_dataplus._M_p = (pointer)paVar2;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    const_iterator::read_next_header(&local_58);\n    iVar6 = local_58.header_.off._4_4_;\n    uVar5 = (uint)local_58.header_.off;\n    iVar4 = p.off_._4_4_;\n    uVar3 = (uint)p.off_;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p != paVar2) {\n      operator_delete(local_58.header_.name._M_dataplus._M_p);\n    }\n    if (uVar5 == uVar3 && iVar4 == iVar6) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||\n        (uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_) {\n      bVar7 = 0xffffffc3 < (uint)p.off_;\n      p.off_._0_4_ = (uint)p.off_ + 0x3c;\n      p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      if ((p.archive_)->is_thin_archive_ == false) {\n        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);\n        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;\n        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;\n      }\n      if (((uint)p.off_ & 1) != 0) {\n        bVar7 = 0xfffffffe < (uint)p.off_;\n        p.off_._0_4_ = (uint)p.off_ + 1;\n        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      const_iterator::read_next_header(&p);\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    local_58.archive_ = this;\n    local_58.off_._4_4_ = *(undefined4 *)((int)&(this->input_file_->file_).size_ + 4);\n    local_58.off_._0_4_ = (undefined4)(this->input_file_->file_).size_;\n    local_58.header_.name._M_string_length = 0;\n    local_58.header_.name.field_2._M_local_buf[0] = '\0';\n    local_58.header_.name._M_dataplus._M_p = (pointer)paVar2;\n                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */\n    const_iterator::read_next_header(&local_58);\n    iVar6 = local_58.header_.off._4_4_;\n    uVar5 = (uint)local_58.header_.off;\n    iVar4 = p.off_._4_4_;\n    uVar3 = (uint)p.off_;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p != paVar2) {\n      operator_delete(local_58.header_.name._M_dataplus._M_p);\n    }\n    if (uVar5 == uVar3 && iVar4 == iVar6) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||\n        (uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_) {\n      bVar7 = 0xffffffc3 < (uint)p.off_;\n      p.off_._0_4_ = (uint)p.off_ + 0x3c;\n      p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      if ((p.archive_)->is_thin_archive_ == false) {\n        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);\n        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;\n        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;\n      }\n      if (((uint)p.off_ & 1) != 0) {\n        bVar7 = 0xfffffffe < (uint)p.off_;\n        p.off_._0_4_ = (uint)p.off_ + 1;\n        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      const_iterator::read_next_header(&p);\n    }\n  }" { (expression_statement "local_58.archive_ = this;" (assignment_expression "local_58.archive_ = this" (field_expression "local_58.archive_" identifier . field_identifier) = identifier) ;) (expression_statement "local_58.off_._4_4_ = *(undefined4 *)((int)&(this->input_file_->file_).size_ + 4);" (assignment_expression "local_58.off_._4_4_ = *(undefined4 *)((int)&(this->input_file_->file_).size_ + 4)" (field_expression "local_58.off_._4_4_" (field_expression "local_58.off_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&(this->input_file_->file_).size_ + 4)" * (cast_expression "(undefined4 *)((int)&(this->input_file_->file_).size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->input_file_->file_).size_ + 4)" ( (binary_expression "(int)&(this->input_file_->file_).size_ + 4" (cast_expression "(int)&(this->input_file_->file_).size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->input_file_->file_).size_" & (field_expression "(this->input_file_->file_).size_" (parenthesized_expression "(this->input_file_->file_)" ( (field_expression "this->input_file_->file_" (field_expression "this->input_file_" identifier -> field_identifier) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "local_58.off_._0_4_ = (undefined4)(this->input_file_->file_).size_;" (assignment_expression "local_58.off_._0_4_ = (undefined4)(this->input_file_->file_).size_" (field_expression "local_58.off_._0_4_" (field_expression "local_58.off_" identifier . field_identifier) . field_identifier) = (field_expression "(undefined4)(this->input_file_->file_).size_" (call_expression "(undefined4)(this->input_file_->file_)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(this->input_file_->file_)" ( (field_expression "this->input_file_->file_" (field_expression "this->input_file_" identifier -> field_identifier) -> field_identifier) ))) . field_identifier)) ;) (expression_statement "local_58.header_.name._M_string_length = 0;" (assignment_expression "local_58.header_.name._M_string_length = 0" (field_expression "local_58.header_.name._M_string_length" (field_expression "local_58.header_.name" (field_expression "local_58.header_" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_58.header_.name.field_2._M_local_buf[0] = '\0';" (assignment_expression "local_58.header_.name.field_2._M_local_buf[0] = '\0'" (subscript_expression "local_58.header_.name.field_2._M_local_buf[0]" (field_expression "local_58.header_.name.field_2._M_local_buf" (field_expression "local_58.header_.name.field_2" (field_expression "local_58.header_.name" (field_expression "local_58.header_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_58.header_.name._M_dataplus._M_p = (pointer)paVar2;" (assignment_expression "local_58.header_.name._M_dataplus._M_p = (pointer)paVar2" (field_expression "local_58.header_.name._M_dataplus._M_p" (field_expression "local_58.header_.name._M_dataplus" (field_expression "local_58.header_.name" (field_expression "local_58.header_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar2" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) comment (labeled_statement "const_iterator::read_next_header(&local_58);" statement_identifier : (ERROR ":" :) (expression_statement "read_next_header(&local_58);" (call_expression "read_next_header(&local_58)" identifier (argument_list "(&local_58)" ( (pointer_expression "&local_58" & identifier) ))) ;)) (expression_statement "iVar6 = local_58.header_.off._4_4_;" (assignment_expression "iVar6 = local_58.header_.off._4_4_" identifier = (field_expression "local_58.header_.off._4_4_" (field_expression "local_58.header_.off" (field_expression "local_58.header_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "uVar5 = (uint)local_58.header_.off;" (assignment_expression "uVar5 = (uint)local_58.header_.off" identifier = (cast_expression "(uint)local_58.header_.off" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_58.header_.off" (field_expression "local_58.header_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "iVar4 = p.off_._4_4_;" (assignment_expression "iVar4 = p.off_._4_4_" identifier = (field_expression "p.off_._4_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "uVar3 = (uint)p.off_;" (assignment_expression "uVar3 = (uint)p.off_" identifier = (cast_expression "(uint)p.off_" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.off_" identifier . field_identifier))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p != paVar2) {\n      operator_delete(local_58.header_.name._M_dataplus._M_p);\n    }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p != paVar2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p != paVar2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p != paVar2" (binary_expression "allocator<char>_>_9\n         *)local_58.header_.name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)local_58.header_.name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_58.header_.name._M_dataplus._M_p" (field_expression "local_58.header_.name._M_dataplus" (field_expression "local_58.header_.name" (field_expression "local_58.header_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n      operator_delete(local_58.header_.name._M_dataplus._M_p);\n    }" { (expression_statement "operator_delete(local_58.header_.name._M_dataplus._M_p);" (call_expression "operator_delete(local_58.header_.name._M_dataplus._M_p)" identifier (argument_list "(local_58.header_.name._M_dataplus._M_p)" ( (field_expression "local_58.header_.name._M_dataplus._M_p" (field_expression "local_58.header_.name._M_dataplus" (field_expression "local_58.header_.name" (field_expression "local_58.header_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) ))) ;) })) (if_statement "if (uVar5 == uVar3 && iVar4 == iVar6) break;" if (parenthesized_expression "(uVar5 == uVar3 && iVar4 == iVar6)" ( (binary_expression "uVar5 == uVar3 && iVar4 == iVar6" (binary_expression "uVar5 == uVar3" identifier == identifier) && (binary_expression "iVar4 == iVar6" identifier == identifier)) )) (break_statement "break;" break ;)) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||\n        (uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_) {\n      bVar7 = 0xffffffc3 < (uint)p.off_;\n      p.off_._0_4_ = (uint)p.off_ + 0x3c;\n      p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      if ((p.archive_)->is_thin_archive_ == false) {\n        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);\n        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;\n        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;\n      }\n      if (((uint)p.off_ & 1) != 0) {\n        bVar7 = 0xfffffffe < (uint)p.off_;\n        p.off_._0_4_ = (uint)p.off_ + 1;\n        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      const_iterator::read_next_header(&p);\n    }" if (parenthesized_expression "(*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||\n        (uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_)" ( (binary_expression "*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||\n        (uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_" (binary_expression "*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_" (pointer_expression "*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4)" * (cast_expression "(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((p.archive_)->input_file_->file_).size_ + 4)" ( (binary_expression "(int)&((p.archive_)->input_file_->file_).size_ + 4" (cast_expression "(int)&((p.archive_)->input_file_->file_).size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((p.archive_)->input_file_->file_).size_" & (field_expression "((p.archive_)->input_file_->file_).size_" (parenthesized_expression "((p.archive_)->input_file_->file_)" ( (field_expression "(p.archive_)->input_file_->file_" (field_expression "(p.archive_)->input_file_" (parenthesized_expression "(p.archive_)" ( (field_expression "p.archive_" identifier . field_identifier) )) -> field_identifier) -> field_identifier) )) . field_identifier))) + number_literal) )))) != (field_expression "p.off_._4_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier)) || (binary_expression "(uint)((p.archive_)->input_file_->file_).size_ != (uint)p.off_" (field_expression "(uint)((p.archive_)->input_file_->file_).size_" (call_expression "(uint)((p.archive_)->input_file_->file_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((p.archive_)->input_file_->file_)" ( (field_expression "(p.archive_)->input_file_->file_" (field_expression "(p.archive_)->input_file_" (parenthesized_expression "(p.archive_)" ( (field_expression "p.archive_" identifier . field_identifier) )) -> field_identifier) -> field_identifier) ))) . field_identifier) != (cast_expression "(uint)p.off_" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.off_" identifier . field_identifier)))) )) (compound_statement "{\n      bVar7 = 0xffffffc3 < (uint)p.off_;\n      p.off_._0_4_ = (uint)p.off_ + 0x3c;\n      p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      if ((p.archive_)->is_thin_archive_ == false) {\n        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);\n        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;\n        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;\n      }\n      if (((uint)p.off_ & 1) != 0) {\n        bVar7 = 0xfffffffe < (uint)p.off_;\n        p.off_._0_4_ = (uint)p.off_ + 1;\n        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      }\n                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */\n      const_iterator::read_next_header(&p);\n    }" { (expression_statement "bVar7 = 0xffffffc3 < (uint)p.off_;" (assignment_expression "bVar7 = 0xffffffc3 < (uint)p.off_" identifier = (binary_expression "0xffffffc3 < (uint)p.off_" number_literal < (cast_expression "(uint)p.off_" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.off_" identifier . field_identifier)))) ;) (expression_statement "p.off_._0_4_ = (uint)p.off_ + 0x3c;" (assignment_expression "p.off_._0_4_ = (uint)p.off_ + 0x3c" (field_expression "p.off_._0_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) = (binary_expression "(uint)p.off_ + 0x3c" (cast_expression "(uint)p.off_" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.off_" identifier . field_identifier)) + number_literal)) ;) (expression_statement "p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;" (assignment_expression "p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7" (field_expression "p.off_._4_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) = (binary_expression "p.off_._4_4_ + (uint)bVar7" (field_expression "p.off_._4_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) + (cast_expression "(uint)bVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((p.archive_)->is_thin_archive_ == false) {\n        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);\n        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;\n        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;\n      }" if (parenthesized_expression "((p.archive_)->is_thin_archive_ == false)" ( (binary_expression "(p.archive_)->is_thin_archive_ == false" (field_expression "(p.archive_)->is_thin_archive_" (parenthesized_expression "(p.archive_)" ( (field_expression "p.archive_" identifier . field_identifier) )) -> field_identifier) == false) )) (compound_statement "{\n        bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);\n        p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;\n        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;\n      }" { (expression_statement "bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size);" (assignment_expression "bVar7 = CARRY4((uint)p.off_,(uint)p.header_.size)" identifier = (call_expression "CARRY4((uint)p.off_,(uint)p.header_.size)" identifier (argument_list "((uint)p.off_,(uint)p.header_.size)" ( (cast_expression "(uint)p.off_" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.off_" identifier . field_identifier)) , (cast_expression "(uint)p.header_.size" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.header_.size" (field_expression "p.header_" identifier . field_identifier) . field_identifier)) )))) ;) (expression_statement "p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size;" (assignment_expression "p.off_._0_4_ = (uint)p.off_ + (uint)p.header_.size" (field_expression "p.off_._0_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) = (binary_expression "(uint)p.off_ + (uint)p.header_.size" (cast_expression "(uint)p.off_" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.off_" identifier . field_identifier)) + (cast_expression "(uint)p.header_.size" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.header_.size" (field_expression "p.header_" identifier . field_identifier) . field_identifier)))) ;) (expression_statement "p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7;" (assignment_expression "p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7" (field_expression "p.off_._4_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) = (binary_expression "p.off_._4_4_ + p.header_.size._4_4_ + (uint)bVar7" (binary_expression "p.off_._4_4_ + p.header_.size._4_4_" (field_expression "p.off_._4_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) + (field_expression "p.header_.size._4_4_" (field_expression "p.header_.size" (field_expression "p.header_" identifier . field_identifier) . field_identifier) . field_identifier)) + (cast_expression "(uint)bVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (if_statement "if (((uint)p.off_ & 1) != 0) {\n        bVar7 = 0xfffffffe < (uint)p.off_;\n        p.off_._0_4_ = (uint)p.off_ + 1;\n        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      }" if (parenthesized_expression "(((uint)p.off_ & 1) != 0)" ( (binary_expression "((uint)p.off_ & 1) != 0" (parenthesized_expression "((uint)p.off_ & 1)" ( (binary_expression "(uint)p.off_ & 1" (cast_expression "(uint)p.off_" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.off_" identifier . field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar7 = 0xfffffffe < (uint)p.off_;\n        p.off_._0_4_ = (uint)p.off_ + 1;\n        p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;\n      }" { (expression_statement "bVar7 = 0xfffffffe < (uint)p.off_;" (assignment_expression "bVar7 = 0xfffffffe < (uint)p.off_" identifier = (binary_expression "0xfffffffe < (uint)p.off_" number_literal < (cast_expression "(uint)p.off_" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.off_" identifier . field_identifier)))) ;) (expression_statement "p.off_._0_4_ = (uint)p.off_ + 1;" (assignment_expression "p.off_._0_4_ = (uint)p.off_ + 1" (field_expression "p.off_._0_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) = (binary_expression "(uint)p.off_ + 1" (cast_expression "(uint)p.off_" ( (type_descriptor "uint" type_identifier) ) (field_expression "p.off_" identifier . field_identifier)) + number_literal)) ;) (expression_statement "p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7;" (assignment_expression "p.off_._4_4_ = p.off_._4_4_ + (uint)bVar7" (field_expression "p.off_._4_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) = (binary_expression "p.off_._4_4_ + (uint)bVar7" (field_expression "p.off_._4_4_" (field_expression "p.off_" identifier . field_identifier) . field_identifier) + (cast_expression "(uint)bVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) comment (labeled_statement "const_iterator::read_next_header(&p);" statement_identifier : (ERROR ":" :) (expression_statement "read_next_header(&p);" (call_expression "read_next_header(&p)" identifier (argument_list "(&p)" ( (pointer_expression "&p" & identifier) ))) ;)) })) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)p.header_.name._M_dataplus._M_p != paVar1) {\n    operator_delete(p.header_.name._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)p.header_.name._M_dataplus._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)p.header_.name._M_dataplus._M_p != paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)p.header_.name._M_dataplus._M_p != paVar1" (binary_expression "allocator<char>_>_9\n       *)p.header_.name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)p.header_.name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "p.header_.name._M_dataplus._M_p" (field_expression "p.header_.name._M_dataplus" (field_expression "p.header_.name" (field_expression "p.header_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n    operator_delete(p.header_.name._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(p.header_.name._M_dataplus._M_p);" (call_expression "operator_delete(p.header_.name._M_dataplus._M_p)" identifier (argument_list "(p.header_.name._M_dataplus._M_p)" ( (field_expression "p.header_.name._M_dataplus._M_p" (field_expression "p.header_.name._M_dataplus" (field_expression "p.header_.name" (field_expression "p.header_" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) ))) ;) })) (return_statement "return local_a8;" return identifier ;) })))
(translation_unit "int FUN_00194ba0(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  int local_a8;\n  int local_94;\n  uint local_90;\n  int local_8c;\n  undefined1 *local_88;\n  undefined4 local_84;\n  undefined1 local_80 [32];\n  uint local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  uint local_34;\n  int local_30;\n  \n  local_94 = param_1;\n  local_90 = 8;\n  local_8c = 0;\n  local_84 = 0;\n  local_80[0] = 0;\n  local_88 = local_80;\n                    \n  FUN_001947a0(&local_94);\n  local_a8 = 0;\n  while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    \n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }\n  }\n  if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }\n  return local_a8;\n}\n\n" (function_definition "int FUN_00194ba0(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  int local_a8;\n  int local_94;\n  uint local_90;\n  int local_8c;\n  undefined1 *local_88;\n  undefined4 local_84;\n  undefined1 local_80 [32];\n  uint local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  uint local_34;\n  int local_30;\n  \n  local_94 = param_1;\n  local_90 = 8;\n  local_8c = 0;\n  local_84 = 0;\n  local_80[0] = 0;\n  local_88 = local_80;\n                    \n  FUN_001947a0(&local_94);\n  local_a8 = 0;\n  while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    \n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }\n  }\n  if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }\n  return local_a8;\n}" primitive_type (function_declarator "FUN_00194ba0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  int local_a8;\n  int local_94;\n  uint local_90;\n  int local_8c;\n  undefined1 *local_88;\n  undefined4 local_84;\n  undefined1 local_80 [32];\n  uint local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  uint local_34;\n  int local_30;\n  \n  local_94 = param_1;\n  local_90 = 8;\n  local_8c = 0;\n  local_84 = 0;\n  local_80[0] = 0;\n  local_88 = local_80;\n                    \n  FUN_001947a0(&local_94);\n  local_a8 = 0;\n  while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    \n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }\n  }\n  if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }\n  return local_a8;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "undefined1 *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined4 local_84;" type_identifier identifier ;) (declaration "undefined1 local_80 [32];" type_identifier (array_declarator "local_80 [32]" identifier [ number_literal ]) ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined1 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (expression_statement "local_94 = param_1;" (assignment_expression "local_94 = param_1" identifier = identifier) ;) (expression_statement "local_90 = 8;" (assignment_expression "local_90 = 8" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_80[0] = 0;" (assignment_expression "local_80[0] = 0" (subscript_expression "local_80[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88 = local_80;" (assignment_expression "local_88 = local_80" identifier = identifier) ;) (expression_statement "FUN_001947a0(&local_94);" (call_expression "FUN_001947a0(&local_94)" identifier (argument_list "(&local_94)" ( (pointer_expression "&local_94" & identifier) ))) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    \n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    \n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }\n  }" { (expression_statement "local_58 = param_1;" (assignment_expression "local_58 = param_1" identifier = identifier) ;) (expression_statement "local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);" (assignment_expression "local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x24) + 0x44)" ( (binary_expression "*(int *)(param_1 + 0x24) + 0x44" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);" (assignment_expression "local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x24) + 0x40)" ( (binary_expression "*(int *)(param_1 + 0x24) + 0x40" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_4c = local_44;" (assignment_expression "local_4c = local_44" identifier = identifier) ;) (expression_statement "FUN_001947a0(&local_58);" (call_expression "FUN_001947a0(&local_58)" identifier (argument_list "(&local_58)" ( (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "iVar4 = local_30;" (assignment_expression "iVar4 = local_30" identifier = identifier) ;) (expression_statement "uVar3 = local_34;" (assignment_expression "uVar3 = local_34" identifier = identifier) ;) (expression_statement "iVar2 = local_8c;" (assignment_expression "iVar2 = local_8c" identifier = identifier) ;) (expression_statement "uVar1 = local_90;" (assignment_expression "uVar1 = local_90" identifier = identifier) ;) (if_statement "if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }" if (parenthesized_expression "(local_4c != local_44)" ( (binary_expression "local_4c != local_44" identifier != identifier) )) (compound_statement "{\n      FUN_001e6db0(local_4c);\n    }" { (expression_statement "FUN_001e6db0(local_4c);" (call_expression "FUN_001e6db0(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) })) (if_statement "if (uVar3 == uVar1 && iVar2 == iVar4) break;" if (parenthesized_expression "(uVar3 == uVar1 && iVar2 == iVar4)" ( (binary_expression "uVar3 == uVar1 && iVar2 == iVar4" (binary_expression "uVar3 == uVar1" identifier == identifier) && (binary_expression "iVar2 == iVar4" identifier == identifier)) )) (break_statement "break;" break ;)) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }" if (parenthesized_expression "(*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90)" ( (binary_expression "*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90" (binary_expression "*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c" (pointer_expression "*(int *)(*(int *)(local_94 + 0x24) + 0x44)" * (cast_expression "(int *)(*(int *)(local_94 + 0x24) + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_94 + 0x24) + 0x44)" ( (binary_expression "*(int *)(local_94 + 0x24) + 0x44" (pointer_expression "*(int *)(local_94 + 0x24)" * (cast_expression "(int *)(local_94 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x24)" ( (binary_expression "local_94 + 0x24" identifier + number_literal) )))) + number_literal) )))) != identifier) || (binary_expression "*(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90" (pointer_expression "*(uint *)(*(int *)(local_94 + 0x24) + 0x40)" * (cast_expression "(uint *)(*(int *)(local_94 + 0x24) + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_94 + 0x24) + 0x40)" ( (binary_expression "*(int *)(local_94 + 0x24) + 0x40" (pointer_expression "*(int *)(local_94 + 0x24)" * (cast_expression "(int *)(local_94 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x24)" ( (binary_expression "local_94 + 0x24" identifier + number_literal) )))) + number_literal) )))) != identifier)) )) (compound_statement "{\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }" { (expression_statement "bVar5 = 0xffffffc3 < local_90;" (assignment_expression "bVar5 = 0xffffffc3 < local_90" identifier = (binary_expression "0xffffffc3 < local_90" number_literal < identifier)) ;) (expression_statement "local_90 = local_90 + 0x3c;" (assignment_expression "local_90 = local_90 + 0x3c" identifier = (binary_expression "local_90 + 0x3c" identifier + number_literal)) ;) (expression_statement "local_8c = local_8c + (uint)bVar5;" (assignment_expression "local_8c = local_8c + (uint)bVar5" identifier = (binary_expression "local_8c + (uint)bVar5" identifier + (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }" if (parenthesized_expression "(*(char *)(local_94 + 0xac) == '\0')" ( (binary_expression "*(char *)(local_94 + 0xac) == '\0'" (pointer_expression "*(char *)(local_94 + 0xac)" * (cast_expression "(char *)(local_94 + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0xac)" ( (binary_expression "local_94 + 0xac" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }" { (expression_statement "bVar5 = CARRY4(local_90,local_60);" (assignment_expression "bVar5 = CARRY4(local_90,local_60)" identifier = (call_expression "CARRY4(local_90,local_60)" identifier (argument_list "(local_90,local_60)" ( identifier , identifier )))) ;) (expression_statement "local_90 = local_90 + local_60;" (assignment_expression "local_90 = local_90 + local_60" identifier = (binary_expression "local_90 + local_60" identifier + identifier)) ;) (expression_statement "local_8c = local_8c + local_5c + (uint)bVar5;" (assignment_expression "local_8c = local_8c + local_5c + (uint)bVar5" identifier = (binary_expression "local_8c + local_5c + (uint)bVar5" (binary_expression "local_8c + local_5c" identifier + identifier) + (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (if_statement "if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }" if (parenthesized_expression "((local_90 & 1) != 0)" ( (binary_expression "(local_90 & 1) != 0" (parenthesized_expression "(local_90 & 1)" ( (binary_expression "local_90 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }" { (expression_statement "bVar5 = 0xfffffffe < local_90;" (assignment_expression "bVar5 = 0xfffffffe < local_90" identifier = (binary_expression "0xfffffffe < local_90" number_literal < identifier)) ;) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (expression_statement "local_8c = local_8c + (uint)bVar5;" (assignment_expression "local_8c = local_8c + (uint)bVar5" identifier = (binary_expression "local_8c + (uint)bVar5" identifier + (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "FUN_001947a0(&local_94);" (call_expression "FUN_001947a0(&local_94)" identifier (argument_list "(&local_94)" ( (pointer_expression "&local_94" & identifier) ))) ;) })) })) (if_statement "if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }" if (parenthesized_expression "(local_88 != local_80)" ( (binary_expression "local_88 != local_80" identifier != identifier) )) (compound_statement "{\n    FUN_001e6db0(local_88);\n  }" { (expression_statement "FUN_001e6db0(local_88);" (call_expression "FUN_001e6db0(local_88)" identifier (argument_list "(local_88)" ( identifier ))) ;) })) (return_statement "return local_a8;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (binary_expression IDENT == IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != IDENT) || (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_00194ba0(int param_1)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  int local_a8;\n  int local_94;\n  uint local_90;\n  int local_8c;\n  undefined1 *local_88;\n  undefined4 local_84;\n  undefined1 local_80 [32];\n  uint local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  uint local_34;\n  int local_30;\n  \n  local_94 = param_1;\n  local_90 = 8;\n  local_8c = 0;\n  local_84 = 0;\n  local_80[0] = 0;\n  local_88 = local_80;\n                    \n  FUN_001947a0(&local_94);\n  local_a8 = 0;\n  while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    \n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }\n  }\n  if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }\n  return local_a8;\n}" (primitive_type "int") (function_declarator "FUN_00194ba0(int param_1)" (identifier "FUN_00194ba0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  int local_a8;\n  int local_94;\n  uint local_90;\n  int local_8c;\n  undefined1 *local_88;\n  undefined4 local_84;\n  undefined1 local_80 [32];\n  uint local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  uint local_34;\n  int local_30;\n  \n  local_94 = param_1;\n  local_90 = 8;\n  local_8c = 0;\n  local_84 = 0;\n  local_80[0] = 0;\n  local_88 = local_80;\n                    \n  FUN_001947a0(&local_94);\n  local_a8 = 0;\n  while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    \n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }\n  }\n  if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }\n  return local_a8;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "int local_a8;" (primitive_type "int") (identifier "local_a8") (; ";")) (declaration "int local_94;" (primitive_type "int") (identifier "local_94") (; ";")) (declaration "uint local_90;" (type_identifier "uint") (identifier "local_90") (; ";")) (declaration "int local_8c;" (primitive_type "int") (identifier "local_8c") (; ";")) (declaration "undefined1 *local_88;" (type_identifier "undefined1") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "undefined4 local_84;" (type_identifier "undefined4") (identifier "local_84") (; ";")) (declaration "undefined1 local_80 [32];" (type_identifier "undefined1") (array_declarator "local_80 [32]" (identifier "local_80") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "uint local_60;" (type_identifier "uint") (identifier "local_60") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined1 *local_4c;" (type_identifier "undefined1") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined1 local_44 [16];" (type_identifier "undefined1") (array_declarator "local_44 [16]" (identifier "local_44") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (expression_statement "local_94 = param_1;" (assignment_expression "local_94 = param_1" (identifier "local_94") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_90 = 8;" (assignment_expression "local_90 = 8" (identifier "local_90") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_80[0] = 0;" (assignment_expression "local_80[0] = 0" (subscript_expression "local_80[0]" (identifier "local_80") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88 = local_80;" (assignment_expression "local_88 = local_80" (identifier "local_88") (= "=") (identifier "local_80")) (; ";")) (expression_statement "FUN_001947a0(&local_94);" (call_expression "FUN_001947a0(&local_94)" (identifier "FUN_001947a0") (argument_list "(&local_94)" (( "(") (pointer_expression "&local_94" (& "&") (identifier "local_94")) () ")"))) (; ";")) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    \n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    local_58 = param_1;\n    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);\n    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);\n    local_48 = 0;\n    local_44[0] = 0;\n    local_4c = local_44;\n                    \n    FUN_001947a0(&local_58);\n    iVar4 = local_30;\n    uVar3 = local_34;\n    iVar2 = local_8c;\n    uVar1 = local_90;\n    if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }\n    if (uVar3 == uVar1 && iVar2 == iVar4) break;\n    local_a8 = local_a8 + 1;\n    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }\n  }" ({ "{") (expression_statement "local_58 = param_1;" (assignment_expression "local_58 = param_1" (identifier "local_58") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);" (assignment_expression "local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44)" (identifier "local_50") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x24) + 0x44)" (( "(") (binary_expression "*(int *)(param_1 + 0x24) + 0x44" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);" (assignment_expression "local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40)" (identifier "local_54") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x24) + 0x40)" (( "(") (binary_expression "*(int *)(param_1 + 0x24) + 0x40" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = local_44;" (assignment_expression "local_4c = local_44" (identifier "local_4c") (= "=") (identifier "local_44")) (; ";")) (expression_statement "FUN_001947a0(&local_58);" (call_expression "FUN_001947a0(&local_58)" (identifier "FUN_001947a0") (argument_list "(&local_58)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "iVar4 = local_30;" (assignment_expression "iVar4 = local_30" (identifier "iVar4") (= "=") (identifier "local_30")) (; ";")) (expression_statement "uVar3 = local_34;" (assignment_expression "uVar3 = local_34" (identifier "uVar3") (= "=") (identifier "local_34")) (; ";")) (expression_statement "iVar2 = local_8c;" (assignment_expression "iVar2 = local_8c" (identifier "iVar2") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "uVar1 = local_90;" (assignment_expression "uVar1 = local_90" (identifier "uVar1") (= "=") (identifier "local_90")) (; ";")) (if_statement "if (local_4c != local_44) {\n      FUN_001e6db0(local_4c);\n    }" (if "if") (parenthesized_expression "(local_4c != local_44)" (( "(") (binary_expression "local_4c != local_44" (identifier "local_4c") (!= "!=") (identifier "local_44")) () ")")) (compound_statement "{\n      FUN_001e6db0(local_4c);\n    }" ({ "{") (expression_statement "FUN_001e6db0(local_4c);" (call_expression "FUN_001e6db0(local_4c)" (identifier "FUN_001e6db0") (argument_list "(local_4c)" (( "(") (identifier "local_4c") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar3 == uVar1 && iVar2 == iVar4) break;" (if "if") (parenthesized_expression "(uVar3 == uVar1 && iVar2 == iVar4)" (( "(") (binary_expression "uVar3 == uVar1 && iVar2 == iVar4" (binary_expression "uVar3 == uVar1" (identifier "uVar3") (== "==") (identifier "uVar1")) (&& "&&") (binary_expression "iVar2 == iVar4" (identifier "iVar2") (== "==") (identifier "iVar4"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" (identifier "local_a8") (= "=") (binary_expression "local_a8 + 1" (identifier "local_a8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90)" (( "(") (binary_expression "*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||\n        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90" (binary_expression "*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c" (pointer_expression "*(int *)(*(int *)(local_94 + 0x24) + 0x44)" (* "*") (cast_expression "(int *)(*(int *)(local_94 + 0x24) + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_94 + 0x24) + 0x44)" (( "(") (binary_expression "*(int *)(local_94 + 0x24) + 0x44" (pointer_expression "*(int *)(local_94 + 0x24)" (* "*") (cast_expression "(int *)(local_94 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94 + 0x24)" (( "(") (binary_expression "local_94 + 0x24" (identifier "local_94") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (identifier "local_8c")) (|| "||") (binary_expression "*(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90" (pointer_expression "*(uint *)(*(int *)(local_94 + 0x24) + 0x40)" (* "*") (cast_expression "(uint *)(*(int *)(local_94 + 0x24) + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_94 + 0x24) + 0x40)" (( "(") (binary_expression "*(int *)(local_94 + 0x24) + 0x40" (pointer_expression "*(int *)(local_94 + 0x24)" (* "*") (cast_expression "(int *)(local_94 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94 + 0x24)" (( "(") (binary_expression "local_94 + 0x24" (identifier "local_94") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (identifier "local_90"))) () ")")) (compound_statement "{\n      bVar5 = 0xffffffc3 < local_90;\n      local_90 = local_90 + 0x3c;\n      local_8c = local_8c + (uint)bVar5;\n      if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }\n      if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }\n                    \n      FUN_001947a0(&local_94);\n    }" ({ "{") (expression_statement "bVar5 = 0xffffffc3 < local_90;" (assignment_expression "bVar5 = 0xffffffc3 < local_90" (identifier "bVar5") (= "=") (binary_expression "0xffffffc3 < local_90" (number_literal "0xffffffc3") (< "<") (identifier "local_90"))) (; ";")) (expression_statement "local_90 = local_90 + 0x3c;" (assignment_expression "local_90 = local_90 + 0x3c" (identifier "local_90") (= "=") (binary_expression "local_90 + 0x3c" (identifier "local_90") (+ "+") (number_literal "0x3c"))) (; ";")) (expression_statement "local_8c = local_8c + (uint)bVar5;" (assignment_expression "local_8c = local_8c + (uint)bVar5" (identifier "local_8c") (= "=") (binary_expression "local_8c + (uint)bVar5" (identifier "local_8c") (+ "+") (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5")))) (; ";")) (if_statement "if (*(char *)(local_94 + 0xac) == '\0') {\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }" (if "if") (parenthesized_expression "(*(char *)(local_94 + 0xac) == '\0')" (( "(") (binary_expression "*(char *)(local_94 + 0xac) == '\0'" (pointer_expression "*(char *)(local_94 + 0xac)" (* "*") (cast_expression "(char *)(local_94 + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94 + 0xac)" (( "(") (binary_expression "local_94 + 0xac" (identifier "local_94") (+ "+") (number_literal "0xac")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        bVar5 = CARRY4(local_90,local_60);\n        local_90 = local_90 + local_60;\n        local_8c = local_8c + local_5c + (uint)bVar5;\n      }" ({ "{") (expression_statement "bVar5 = CARRY4(local_90,local_60);" (assignment_expression "bVar5 = CARRY4(local_90,local_60)" (identifier "bVar5") (= "=") (call_expression "CARRY4(local_90,local_60)" (identifier "CARRY4") (argument_list "(local_90,local_60)" (( "(") (identifier "local_90") (, ",") (identifier "local_60") () ")")))) (; ";")) (expression_statement "local_90 = local_90 + local_60;" (assignment_expression "local_90 = local_90 + local_60" (identifier "local_90") (= "=") (binary_expression "local_90 + local_60" (identifier "local_90") (+ "+") (identifier "local_60"))) (; ";")) (expression_statement "local_8c = local_8c + local_5c + (uint)bVar5;" (assignment_expression "local_8c = local_8c + local_5c + (uint)bVar5" (identifier "local_8c") (= "=") (binary_expression "local_8c + local_5c + (uint)bVar5" (binary_expression "local_8c + local_5c" (identifier "local_8c") (+ "+") (identifier "local_5c")) (+ "+") (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5")))) (; ";")) (} "}"))) (if_statement "if ((local_90 & 1) != 0) {\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }" (if "if") (parenthesized_expression "((local_90 & 1) != 0)" (( "(") (binary_expression "(local_90 & 1) != 0" (parenthesized_expression "(local_90 & 1)" (( "(") (binary_expression "local_90 & 1" (identifier "local_90") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        bVar5 = 0xfffffffe < local_90;\n        local_90 = local_90 + 1;\n        local_8c = local_8c + (uint)bVar5;\n      }" ({ "{") (expression_statement "bVar5 = 0xfffffffe < local_90;" (assignment_expression "bVar5 = 0xfffffffe < local_90" (identifier "bVar5") (= "=") (binary_expression "0xfffffffe < local_90" (number_literal "0xfffffffe") (< "<") (identifier "local_90"))) (; ";")) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" (identifier "local_90") (= "=") (binary_expression "local_90 + 1" (identifier "local_90") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_8c = local_8c + (uint)bVar5;" (assignment_expression "local_8c = local_8c + (uint)bVar5" (identifier "local_8c") (= "=") (binary_expression "local_8c + (uint)bVar5" (identifier "local_8c") (+ "+") (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5")))) (; ";")) (} "}"))) (expression_statement "FUN_001947a0(&local_94);" (call_expression "FUN_001947a0(&local_94)" (identifier "FUN_001947a0") (argument_list "(&local_94)" (( "(") (pointer_expression "&local_94" (& "&") (identifier "local_94")) () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_88 != local_80) {\n    FUN_001e6db0(local_88);\n  }" (if "if") (parenthesized_expression "(local_88 != local_80)" (( "(") (binary_expression "local_88 != local_80" (identifier "local_88") (!= "!=") (identifier "local_80")) () ")")) (compound_statement "{\n    FUN_001e6db0(local_88);\n  }" ({ "{") (expression_statement "FUN_001e6db0(local_88);" (call_expression "FUN_001e6db0(local_88)" (identifier "FUN_001e6db0") (argument_list "(local_88)" (( "(") (identifier "local_88") () ")"))) (; ";")) (} "}"))) (return_statement "return local_a8;" (return "return") (identifier "local_a8") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: size_t count_members(Archive * this) */

size_t __thiscall gold::type_1::function_1(type_1 *this)

{
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_6;
  type_2 var_10;
  int var_11;
  type_2 var_9;
  int var_12;
  bool bVar7;
  size_t var_13;
  type_3 p;
  type_3 local_58;
  
  var_5 = &p.header_.name.field_2;
  p.archive_ = this;
  p.off_._0_4_ = 8;
  p.off_._4_4_ = 0;
  p.header_.name._M_string_length = 0;
  p.header_.name.field_2._M_local_buf[0] = '\0';
  p.header_.name._M_dataplus._M_p = (type_4)var_5;
                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */
  const_iterator::var_7(&p);
  var_6 = &local_58.header_.name.field_2;
  var_13 = 0;
  while( true ) {
    local_58.archive_ = this;
    local_58.off_._4_4_ = *(type_5 *)((int)&(this->input_file_->file_).size_ + 4);
    local_58.off_._0_4_ = (type_5)(this->input_file_->file_).size_;
    local_58.header_.name._M_string_length = 0;
    local_58.header_.name.field_2._M_local_buf[0] = '\0';
    local_58.header_.name._M_dataplus._M_p = (type_4)var_6;
                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */
    const_iterator::var_7(&local_58);
    var_12 = local_58.header_.off._4_4_;
    var_9 = (type_2)local_58.header_.off;
    var_11 = p.off_._4_4_;
    var_10 = (type_2)p.off_;
    if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
         *)local_58.header_.name._M_dataplus._M_p != var_6) {
      var_8(local_58.header_.name._M_dataplus._M_p);
    }
    if (var_9 == var_10 && var_11 == var_12) break;
    var_13 = var_13 + 1;
    if (*(int *)((int)&((p.archive_)->input_file_->file_).size_ + 4) != p.off_._4_4_ ||
        (type_2)((p.archive_)->input_file_->file_).size_ != (type_2)p.off_) {
      bVar7 = 0xffffffc3 < (type_2)p.off_;
      p.off_._0_4_ = (type_2)p.off_ + 0x3c;
      p.off_._4_4_ = p.off_._4_4_ + (type_2)bVar7;
      if ((p.archive_)->is_thin_archive_ == false) {
        bVar7 = var_14((type_2)p.off_,(type_2)p.header_.size);
        p.off_._0_4_ = (type_2)p.off_ + (type_2)p.header_.size;
        p.off_._4_4_ = p.off_._4_4_ + p.header_.size._4_4_ + (type_2)bVar7;
      }
      if (((type_2)p.off_ & 1) != 0) {
        bVar7 = 0xfffffffe < (type_2)p.off_;
        p.off_._0_4_ = (type_2)p.off_ + 1;
        p.off_._4_4_ = p.off_._4_4_ + (type_2)bVar7;
      }
                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */
      const_iterator::var_7(&p);
    }
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)p.header_.name._M_dataplus._M_p != var_5) {
    var_8(p.header_.name._M_dataplus._M_p);
  }
  return var_13;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

int MASKED(int param_1)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  bool bVar5;
  int local_a8;
  int local_94;
  uint local_90;
  int local_8c;
  undefined1 *local_88;
  undefined4 local_84;
  undefined1 local_80 [32];
  uint local_60;
  int local_5c;
  int local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined1 *local_4c;
  undefined4 local_48;
  undefined1 local_44 [16];
  uint local_34;
  int local_30;
  
  local_94 = param_1;
  local_90 = 8;
  local_8c = 0;
  local_84 = 0;
  local_80[0] = 0;
  local_88 = local_80;
                    /* try { // try from 00194c00 to 00194c04 has its CatchHandler @ 00194d8e */
  FUN_001947a0(&local_94);
  local_a8 = 0;
  while( true ) {
    local_58 = param_1;
    local_50 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x44);
    local_54 = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0x40);
    local_48 = 0;
    local_44[0] = 0;
    local_4c = local_44;
                    /* try { // try from 00194c49 to 00194c4d has its CatchHandler @ 00194d9c */
    FUN_001947a0(&local_58);
    iVar4 = local_30;
    uVar3 = local_34;
    iVar2 = local_8c;
    uVar1 = local_90;
    if (local_4c != local_44) {
      FUN_001e6db0(local_4c);
    }
    if (uVar3 == uVar1 && iVar2 == iVar4) break;
    local_a8 = local_a8 + 1;
    if (*(int *)(*(int *)(local_94 + 0x24) + 0x44) != local_8c ||
        *(uint *)(*(int *)(local_94 + 0x24) + 0x40) != local_90) {
      bVar5 = 0xffffffc3 < local_90;
      local_90 = local_90 + 0x3c;
      local_8c = local_8c + (uint)bVar5;
      if (*(char *)(local_94 + 0xac) == '\0') {
        bVar5 = CARRY4(local_90,local_60);
        local_90 = local_90 + local_60;
        local_8c = local_8c + local_5c + (uint)bVar5;
      }
      if ((local_90 & 1) != 0) {
        bVar5 = 0xfffffffe < local_90;
        local_90 = local_90 + 1;
        local_8c = local_8c + (uint)bVar5;
      }
                    /* try { // try from 00194d4b to 00194d4f has its CatchHandler @ 00194d95 */
      FUN_001947a0(&local_94);
    }
  }
  if (local_88 != local_80) {
    FUN_001e6db0(local_88);
  }
  return local_a8;
}

