
/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: bool include_linkonce_section(Sized_relobj_file<32,_false> * this,
   Layout * layout, uint index, char * name, Shdr<32,_false> * shdr) */

bool __thiscall
gold::Sized_relobj_file<32,_false>::include_linkonce_section
          (Sized_relobj_file<32,_false> *this,Layout *layout,uint index,char *name,
          Shdr<32,_false> *shdr)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  Comdat_group *pCVar2;
  char *pcVar3;
  size_t sVar4;
  char *pcVar5;
  int iVar6;
  byte *pbVar7;
  byte *pbVar8;
  bool bVar9;
  bool bVar10;
  Kept_section *kept1;
  Kept_section *kept2;
  string sig1;
  string sig2;
  undefined1 local_4c [8];
  undefined4 local_44;
  Kept_section *local_40;
  uint local_3c;
  bool local_38;
  undefined1 local_34 [8];
  undefined4 local_2c;
  Kept_section *local_28;
  uint local_24;
  bool local_20;
  
  iVar6 = 0x10;
  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;
  bVar10 = &stack0x00000000 == (undefined1 *)0xac;
  pbVar7 = (byte *)name;
  pbVar8 = (byte *)".gnu.linkonce.t.";
  do {
    if (iVar6 == 0) break;
    iVar6 = iVar6 + -1;
    bVar9 = *pbVar7 < *pbVar8;
    bVar10 = *pbVar7 == *pbVar8;
    pbVar7 = pbVar7 + 1;
    pbVar8 = pbVar8 + 1;
  } while (bVar10);
  pCVar2 = (Comdat_group *)shdr->p_->sh_size;
  if ((!bVar9 && !bVar10) == bVar9) {
    pcVar5 = name + 0x10;
  }
  else {
    pcVar5 = strrchr(name,0x2e);
    pcVar5 = pcVar5 + 1;
  }
  paVar1 = &sig1.field_2;
  pcVar3 = (char *)0xffffffff;
  sig1._M_dataplus._M_p = (pointer)paVar1;
  if (pcVar5 != (char *)0x0) {
    sVar4 = strlen(pcVar5);
    pcVar3 = pcVar5 + sVar4;
  }
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&sig1,pcVar5,pcVar3,0);
  sig2._M_dataplus._M_p = (pointer)&sig2.field_2;
  sVar4 = strlen(name);
                    /* try { // try from 0009c87f to 0009c883 has its CatchHandler @ 0009ca65 */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&sig2,name,name + sVar4,0);
                    /* try { // try from 0009c89f to 0009ca60 has its CatchHandler @ 0009ca61 */
  bVar9 = Layout::find_or_add_kept_section(layout,&sig1,(Relobj *)this,index,false,false,&kept1);
  bVar10 = Layout::find_or_add_kept_section(layout,&sig2,(Relobj *)this,index,false,true,&kept2);
  if (bVar10) {
    if (bVar9) {
      if (kept1->is_comdat_ != false) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");
      }
      (kept1->u_).group_sections = pCVar2;
      *(undefined4 *)((int)&kept1->u_ + 4) = 0;
      if (kept2->is_comdat_ != false) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");
      }
      (kept2->u_).group_sections = pCVar2;
      *(undefined4 *)((int)&kept2->u_ + 4) = 0;
    }
    else if ((kept1->object_ != (Relobj *)0x0) && (kept1->is_comdat_ != false)) {
      local_28 = kept1;
      local_34._0_4_ = index;
      local_2c = 0;
      local_24 = 0;
      local_20 = false;
      local_34._4_4_ = pCVar2;
      std::
      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>
      ::
      _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>
                (&(this->kept_comdat_sections_)._M_t,
                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)
                 local_34);
    }
  }
  else if ((kept2->object_ != (Relobj *)0x0) && (kept2->is_comdat_ == false)) {
    local_40 = kept2;
    local_44 = 0;
    local_4c._0_4_ = index;
    local_3c = 0;
    local_38 = false;
    local_4c._4_4_ = pCVar2;
    std::
    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>
    ::
    _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>
              (&(this->kept_comdat_sections_)._M_t,
               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)
               local_4c);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)sig2._M_dataplus._M_p != &sig2.field_2) {
    operator_delete(sig2._M_dataplus._M_p);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)sig1._M_dataplus._M_p != paVar1) {
    operator_delete(sig1._M_dataplus._M_p);
  }
  return bVar9 && bVar10;
}



/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

uint FUN_0009c7d0(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)

{
  byte *pbVar1;
  size_t sVar2;
  uint uVar3;
  uint uVar4;
  char *pcVar5;
  int iVar6;
  int **ppiVar7;
  byte *pbVar8;
  bool bVar9;
  bool bVar10;
  int *piStack_b0;
  undefined1 auStack_ac [8];
  int local_a4;
  undefined1 *local_a0;
  undefined1 *local_9c;
  undefined **local_98;
  undefined1 local_94 [16];
  int *local_84;
  int *local_80;
  undefined1 *local_7c [2];
  undefined1 local_74 [16];
  undefined1 *local_64 [2];
  undefined1 local_5c [16];
  undefined4 local_4c;
  int local_48;
  undefined4 local_44;
  int *local_40;
  undefined4 local_3c;
  undefined1 local_38;
  undefined4 local_34;
  int local_30;
  undefined4 local_2c;
  int *local_28;
  undefined4 local_24;
  undefined1 local_20;
  
  local_98 = &__DT_PLTGOT;
  iVar6 = 0x10;
  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;
  bVar10 = &stack0x00000000 == (undefined1 *)0xac;
  pbVar8 = param_4;
  pbVar1 = (byte *)".gnu.linkonce.t.";
  do {
    if (iVar6 == 0) break;
    iVar6 = iVar6 + -1;
    bVar9 = *pbVar8 < *pbVar1;
    bVar10 = *pbVar8 == *pbVar1;
    pbVar8 = pbVar8 + 1;
    pbVar1 = pbVar1 + 1;
  } while (bVar10);
  local_a4 = *(int *)(*param_5 + 0x14);
  if ((!bVar9 && !bVar10) == bVar9) {
    pbVar8 = param_4 + 0x10;
  }
  else {
    pcVar5 = strrchr((char *)param_4,0x2e);
    pbVar8 = (byte *)(pcVar5 + 1);
  }
  ppiVar7 = (int **)auStack_ac;
  local_9c = local_74;
  pbVar1 = (byte *)0xffffffff;
  local_7c[0] = local_9c;
  if (pbVar8 != (byte *)0x0) {
    sVar2 = strlen((char *)pbVar8);
    pbVar1 = pbVar8 + sVar2;
  }
  piStack_b0 = (int *)0x0;
  FUN_0004cf80(local_7c,pbVar8,pbVar1);
  local_a0 = local_5c;
  local_64[0] = local_a0;
  sVar2 = strlen((char *)param_4);
  piStack_b0 = (int *)0x0;
                    /* try { // try from 0009c87f to 0009c883 has its CatchHandler @ 0009ca65 */
  FUN_0004cf80(local_64,param_4,param_4 + sVar2);
                    /* try { // try from 0009c89f to 0009ca60 has its CatchHandler @ 0009ca61 */
  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);
  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);
  if ((char)uVar4 == '\0') {
    ppiVar7 = (int **)auStack_ac;
    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))
    goto LAB_0009c8e6;
    local_40 = local_80;
    local_44 = 0;
    local_4c = param_3;
    local_3c = 0;
    local_48 = local_a4;
    local_38 = 0;
    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);
  }
  else {
    if ((char)uVar3 != '\0') {
      if ((char)local_84[2] != '\0') {
        piStack_b0 = local_84;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);
      }
      local_84[3] = local_a4;
      local_84[4] = 0;
      if ((char)local_80[2] != '\0') {
        piStack_b0 = (int *)0x0;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);
      }
      local_80[3] = local_a4;
      local_80[4] = 0;
      goto LAB_0009c8e6;
    }
    ppiVar7 = (int **)auStack_ac;
    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))
    goto LAB_0009c8e6;
    local_28 = local_84;
    local_34 = param_3;
    local_2c = 0;
    local_30 = local_a4;
    local_24 = 0;
    local_20 = 0;
    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);
  }
  ppiVar7 = &piStack_b0;
LAB_0009c8e6:
  if (local_64[0] != local_a0) {
    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];
    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;
    FUN_001807a0();
  }
  if (local_7c[0] != local_9c) {
    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];
    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;
    FUN_001807a0();
  }
  return uVar3 & uVar4;
}


CALL 0x00032865
ADD EDX,0x26582b
PUSH EBP
MOV ECX,0x10
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
LEA EDI,[EDX + 0xfff213d0]
SUB ESP,0x9c
MOV ESI,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + 0xffffff6c],EDX
CMPSB.REPE ES:EDI,ESI
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [EBP + 0xffffff60],EAX
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0009c930
MOV EAX,dword ptr [EBP + 0x14]
LEA ESI,[EAX + 0x10]
LEA EAX,[EBP + -0x70]
MOV dword ptr [EBP + 0xffffff68],EAX
MOV dword ptr [EBP + -0x78],EAX
MOV EAX,0xffffffff
TEST ESI,ESI
JZ 0x0009c847
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff6c]
PUSH ESI
CALL 0x000265f0
ADD ESP,0x10
ADD EAX,ESI
LEA EDI,[EBP + -0x78]
PUSH 0x0
PUSH EAX
PUSH ESI
LEA ESI,[EBP + -0x60]
PUSH EDI
CALL 0x0004cf80
LEA EAX,[EBP + -0x58]
MOV EBX,dword ptr [EBP + 0xffffff6c]
MOV dword ptr [EBP + 0xffffff64],EAX
MOV dword ptr [EBP + -0x60],EAX
POP EAX
PUSH dword ptr [EBP + 0x14]
CALL 0x000265f0
ADD ESP,0x10
ADD EAX,dword ptr [EBP + 0x14]
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0x14]
PUSH ESI
CALL 0x0004cf80
ADD ESP,0xc
LEA EAX,[EBP + -0x80]
MOV EBX,dword ptr [EBP + 0xffffff6c]
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0x8]
PUSH EDI
PUSH dword ptr [EBP + 0xc]
CALL 0x00082ae0
ADD ESP,0x1c
MOV EDI,EAX
LEA EAX,[EBP + -0x7c]
MOV EBX,dword ptr [EBP + 0xffffff6c]
PUSH EAX
PUSH 0x1
PUSH 0x0
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0x8]
PUSH ESI
PUSH dword ptr [EBP + 0xc]
CALL 0x00082ae0
MOV EBX,EAX
ADD ESP,0x20
TEST AL,AL
JNZ 0x0009c950
MOV EAX,dword ptr [EBP + -0x7c]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x0009c8e6
CMP byte ptr [EAX + 0x8],0x0
JZ 0x0009c9e0
AND EDI,EBX
MOV EAX,dword ptr [EBP + -0x60]
CMP EAX,dword ptr [EBP + 0xffffff64]
JZ 0x0009c905
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff6c]
PUSH EAX
CALL 0x001807a0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x78]
CMP EAX,dword ptr [EBP + 0xffffff68]
JZ 0x0009c922
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff6c]
PUSH EAX
CALL 0x001807a0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff6c]
PUSH 0x2e
PUSH dword ptr [EBP + 0x14]
CALL 0x00026340
ADD ESP,0x10
LEA ESI,[EAX + 0x1]
JMP 0x0009c81e
MOV EAX,EDI
MOV ECX,dword ptr [EBP + -0x80]
TEST AL,AL
JNZ 0x0009c9b8
MOV ESI,dword ptr [ECX]
TEST ESI,ESI
JZ 0x0009c8e6
CMP byte ptr [ECX + 0x8],0x0
JZ 0x0009c8e6
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x24],ECX
SUB ESP,0x4
LEA EDX,[EBP + -0x30]
MOV ECX,dword ptr [EBP + 0x8]
PUSH EDX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff60]
LEA EDX,[ECX + 0x104]
MOV dword ptr [EBP + -0x28],0x0
MOV dword ptr [EBP + -0x2c],EAX
LEA EAX,[EBP + 0xffffff70]
PUSH EDX
PUSH EAX
MOV dword ptr [EBP + -0x20],0x0
MOV byte ptr [EBP + -0x1c],0x0
CALL 0x00099cc0
ADD ESP,0xc
JMP 0x0009c8e6
XOR EDX,EDX
CMP byte ptr [ECX + 0x8],0x0
MOV EAX,dword ptr [EBP + 0xffffff60]
JNZ 0x0009ca42
MOV dword ptr [ECX + 0xc],EAX
MOV dword ptr [ECX + 0x10],EDX
MOV ECX,dword ptr [EBP + -0x7c]
CMP byte ptr [ECX + 0x8],0x0
JNZ 0x0009ca23
MOV dword ptr [ECX + 0xc],EAX
MOV dword ptr [ECX + 0x10],EDX
JMP 0x0009c8e6
MOV EDX,dword ptr [EBP + 0x10]
SUB ESP,0x4
MOV dword ptr [EBP + -0x3c],EAX
LEA EAX,[EBP + 0xffffff70]
MOV dword ptr [EBP + -0x40],0x0
MOV dword ptr [EBP + -0x48],EDX
MOV EDX,dword ptr [EBP + 0xffffff60]
MOV dword ptr [EBP + -0x38],0x0
MOV dword ptr [EBP + -0x44],EDX
LEA EDX,[EBP + -0x48]
PUSH EDX
MOV EDX,dword ptr [EBP + 0x8]
MOV byte ptr [EBP + -0x34],0x0
ADD EDX,0x104
PUSH EDX
PUSH EAX
CALL 0x00099cc0
JMP 0x0009c9aa
MOV EBX,dword ptr [EBP + 0xffffff6c]
PUSH EDX
LEA EAX,[EBX + 0xfff23420]
PUSH EAX
LEA EAX,[EBX + 0xfff1f9b4]
PUSH 0x163
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + 0xffffff6c]
PUSH ECX
LEA EAX,[EBX + 0xfff23420]
PUSH EAX
LEA EAX,[EBX + 0xfff1f9b4]
PUSH 0x163
PUSH EAX
CALL 0x0005f0b0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nuint FUN_0009c7d0(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)\n\n{\n  byte *pbVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int **ppiVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  int *piStack_b0;\n  undefined1 auStack_ac [8];\n  int local_a4;\n  undefined1 *local_a0;\n  undefined1 *local_9c;\n  undefined **local_98;\n  undefined1 local_94 [16];\n  int *local_84;\n  int *local_80;\n  undefined1 *local_7c [2];\n  undefined1 local_74 [16];\n  undefined1 *local_64 [2];\n  undefined1 local_5c [16];\n  undefined4 local_4c;\n  int local_48;\n  undefined4 local_44;\n  int *local_40;\n  undefined4 local_3c;\n  undefined1 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  undefined4 local_24;\n  undefined1 local_20;\n  \n  local_98 = &__DT_PLTGOT;\n  iVar6 = 0x10;\n  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;\n  bVar10 = &stack0x00000000 == (undefined1 *)0xac;\n  pbVar8 = param_4;\n  pbVar1 = (byte *)".gnu.linkonce.t.";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);\n  local_a4 = *(int *)(*param_5 + 0x14);\n  if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }\n  ppiVar7 = (int **)auStack_ac;\n  local_9c = local_74;\n  pbVar1 = (byte *)0xffffffff;\n  local_7c[0] = local_9c;\n  if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }\n  piStack_b0 = (int *)0x0;\n  FUN_0004cf80(local_7c,pbVar8,pbVar1);\n  local_a0 = local_5c;\n  local_64[0] = local_a0;\n  sVar2 = strlen((char *)param_4);\n  piStack_b0 = (int *)0x0;\n                    /* try { // try from 0009c87f to 0009c883 has its CatchHandler @ 0009ca65 */\n  FUN_0004cf80(local_64,param_4,param_4 + sVar2);\n                    /* try { // try from 0009c89f to 0009ca60 has its CatchHandler @ 0009ca61 */\n  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);\n  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);\n  if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }\n  ppiVar7 = &piStack_b0;\nLAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }\n  if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }\n  return uVar3 & uVar4;\n}\n\n" comment (function_definition "uint FUN_0009c7d0(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)\n\n{\n  byte *pbVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int **ppiVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  int *piStack_b0;\n  undefined1 auStack_ac [8];\n  int local_a4;\n  undefined1 *local_a0;\n  undefined1 *local_9c;\n  undefined **local_98;\n  undefined1 local_94 [16];\n  int *local_84;\n  int *local_80;\n  undefined1 *local_7c [2];\n  undefined1 local_74 [16];\n  undefined1 *local_64 [2];\n  undefined1 local_5c [16];\n  undefined4 local_4c;\n  int local_48;\n  undefined4 local_44;\n  int *local_40;\n  undefined4 local_3c;\n  undefined1 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  undefined4 local_24;\n  undefined1 local_20;\n  \n  local_98 = &__DT_PLTGOT;\n  iVar6 = 0x10;\n  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;\n  bVar10 = &stack0x00000000 == (undefined1 *)0xac;\n  pbVar8 = param_4;\n  pbVar1 = (byte *)".gnu.linkonce.t.";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);\n  local_a4 = *(int *)(*param_5 + 0x14);\n  if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }\n  ppiVar7 = (int **)auStack_ac;\n  local_9c = local_74;\n  pbVar1 = (byte *)0xffffffff;\n  local_7c[0] = local_9c;\n  if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }\n  piStack_b0 = (int *)0x0;\n  FUN_0004cf80(local_7c,pbVar8,pbVar1);\n  local_a0 = local_5c;\n  local_64[0] = local_a0;\n  sVar2 = strlen((char *)param_4);\n  piStack_b0 = (int *)0x0;\n                    /* try { // try from 0009c87f to 0009c883 has its CatchHandler @ 0009ca65 */\n  FUN_0004cf80(local_64,param_4,param_4 + sVar2);\n                    /* try { // try from 0009c89f to 0009ca60 has its CatchHandler @ 0009ca61 */\n  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);\n  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);\n  if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }\n  ppiVar7 = &piStack_b0;\nLAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }\n  if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }\n  return uVar3 & uVar4;\n}" type_identifier (function_declarator "FUN_0009c7d0(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int **ppiVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  int *piStack_b0;\n  undefined1 auStack_ac [8];\n  int local_a4;\n  undefined1 *local_a0;\n  undefined1 *local_9c;\n  undefined **local_98;\n  undefined1 local_94 [16];\n  int *local_84;\n  int *local_80;\n  undefined1 *local_7c [2];\n  undefined1 local_74 [16];\n  undefined1 *local_64 [2];\n  undefined1 local_5c [16];\n  undefined4 local_4c;\n  int local_48;\n  undefined4 local_44;\n  int *local_40;\n  undefined4 local_3c;\n  undefined1 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  undefined4 local_24;\n  undefined1 local_20;\n  \n  local_98 = &__DT_PLTGOT;\n  iVar6 = 0x10;\n  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;\n  bVar10 = &stack0x00000000 == (undefined1 *)0xac;\n  pbVar8 = param_4;\n  pbVar1 = (byte *)".gnu.linkonce.t.";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);\n  local_a4 = *(int *)(*param_5 + 0x14);\n  if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }\n  ppiVar7 = (int **)auStack_ac;\n  local_9c = local_74;\n  pbVar1 = (byte *)0xffffffff;\n  local_7c[0] = local_9c;\n  if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }\n  piStack_b0 = (int *)0x0;\n  FUN_0004cf80(local_7c,pbVar8,pbVar1);\n  local_a0 = local_5c;\n  local_64[0] = local_a0;\n  sVar2 = strlen((char *)param_4);\n  piStack_b0 = (int *)0x0;\n                    /* try { // try from 0009c87f to 0009c883 has its CatchHandler @ 0009ca65 */\n  FUN_0004cf80(local_64,param_4,param_4 + sVar2);\n                    /* try { // try from 0009c89f to 0009ca60 has its CatchHandler @ 0009ca61 */\n  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);\n  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);\n  if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }\n  ppiVar7 = &piStack_b0;\nLAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }\n  if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }\n  return uVar3 & uVar4;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int **ppiVar7;" primitive_type (pointer_declarator "**ppiVar7" * (pointer_declarator "*ppiVar7" * identifier)) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int *piStack_b0;" primitive_type (pointer_declarator "*piStack_b0" * identifier) ;) (declaration "undefined1 auStack_ac [8];" type_identifier (array_declarator "auStack_ac [8]" identifier [ number_literal ]) ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "undefined1 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "undefined1 *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "undefined **local_98;" type_identifier (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)) ;) (declaration "undefined1 local_94 [16];" type_identifier (array_declarator "local_94 [16]" identifier [ number_literal ]) ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "int *local_80;" primitive_type (pointer_declarator "*local_80" * identifier) ;) (declaration "undefined1 *local_7c [2];" type_identifier (pointer_declarator "*local_7c [2]" * (array_declarator "local_7c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_74 [16];" type_identifier (array_declarator "local_74 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_64 [2];" type_identifier (pointer_declarator "*local_64 [2]" * (array_declarator "local_64 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_5c [16];" type_identifier (array_declarator "local_5c [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined1 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined1 local_20;" type_identifier identifier ;) (expression_statement "local_98 = &__DT_PLTGOT;" (assignment_expression "local_98 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" identifier = number_literal) ;) (expression_statement "bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;" (assignment_expression "bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c" identifier = (binary_expression "&stack0xfffffff0 < (undefined1 *)0x9c" (pointer_expression "&stack0xfffffff0" & identifier) < (cast_expression "(undefined1 *)0x9c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar10 = &stack0x00000000 == (undefined1 *)0xac;" (assignment_expression "bVar10 = &stack0x00000000 == (undefined1 *)0xac" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xac" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xac" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar8 = param_4;" (assignment_expression "pbVar8 = param_4" identifier = identifier) ;) (expression_statement "pbVar1 = (byte *)".gnu.linkonce.t.";" (assignment_expression "pbVar1 = (byte *)".gnu.linkonce.t."" identifier = (cast_expression "(byte *)".gnu.linkonce.t."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.t."" " string_content "))) ;) (do_statement "do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);" do (compound_statement "{\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar8 < *pbVar1;" (assignment_expression "bVar9 = *pbVar8 < *pbVar1" identifier = (binary_expression "*pbVar8 < *pbVar1" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar1" * identifier))) ;) (expression_statement "bVar10 = *pbVar8 == *pbVar1;" (assignment_expression "bVar10 = *pbVar8 == *pbVar1" identifier = (binary_expression "*pbVar8 == *pbVar1" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar1" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar1 = pbVar1 + 1;" (assignment_expression "pbVar1 = pbVar1 + 1" identifier = (binary_expression "pbVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "local_a4 = *(int *)(*param_5 + 0x14);" (assignment_expression "local_a4 = *(int *)(*param_5 + 0x14)" identifier = (pointer_expression "*(int *)(*param_5 + 0x14)" * (cast_expression "(int *)(*param_5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0x14)" ( (binary_expression "*param_5 + 0x14" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (if_statement "if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }" if (parenthesized_expression "((!bVar9 && !bVar10) == bVar9)" ( (binary_expression "(!bVar9 && !bVar10) == bVar9" (parenthesized_expression "(!bVar9 && !bVar10)" ( (binary_expression "!bVar9 && !bVar10" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier) )) (compound_statement "{\n    pbVar8 = param_4 + 0x10;\n  }" { (expression_statement "pbVar8 = param_4 + 0x10;" (assignment_expression "pbVar8 = param_4 + 0x10" identifier = (binary_expression "param_4 + 0x10" identifier + number_literal)) ;) }) (else_clause "else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }" else (compound_statement "{\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }" { (expression_statement "pcVar5 = strrchr((char *)param_4,0x2e);" (assignment_expression "pcVar5 = strrchr((char *)param_4,0x2e)" identifier = (call_expression "strrchr((char *)param_4,0x2e)" identifier (argument_list "((char *)param_4,0x2e)" ( (cast_expression "(char *)param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pbVar8 = (byte *)(pcVar5 + 1);" (assignment_expression "pbVar8 = (byte *)(pcVar5 + 1)" identifier = (cast_expression "(byte *)(pcVar5 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 1)" ( (binary_expression "pcVar5 + 1" identifier + number_literal) )))) ;) }))) (expression_statement "ppiVar7 = (int **)auStack_ac;" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "local_9c = local_74;" (assignment_expression "local_9c = local_74" identifier = identifier) ;) (expression_statement "pbVar1 = (byte *)0xffffffff;" (assignment_expression "pbVar1 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_7c[0] = local_9c;" (assignment_expression "local_7c[0] = local_9c" (subscript_expression "local_7c[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }" if (parenthesized_expression "(pbVar8 != (byte *)0x0)" ( (binary_expression "pbVar8 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }" { (expression_statement "sVar2 = strlen((char *)pbVar8);" (assignment_expression "sVar2 = strlen((char *)pbVar8)" identifier = (call_expression "strlen((char *)pbVar8)" identifier (argument_list "((char *)pbVar8)" ( (cast_expression "(char *)pbVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar1 = pbVar8 + sVar2;" (assignment_expression "pbVar1 = pbVar8 + sVar2" identifier = (binary_expression "pbVar8 + sVar2" identifier + identifier)) ;) })) (expression_statement "piStack_b0 = (int *)0x0;" (assignment_expression "piStack_b0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0004cf80(local_7c,pbVar8,pbVar1);" (call_expression "FUN_0004cf80(local_7c,pbVar8,pbVar1)" identifier (argument_list "(local_7c,pbVar8,pbVar1)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_a0 = local_5c;" (assignment_expression "local_a0 = local_5c" identifier = identifier) ;) (expression_statement "local_64[0] = local_a0;" (assignment_expression "local_64[0] = local_a0" (subscript_expression "local_64[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar2 = strlen((char *)param_4);" (assignment_expression "sVar2 = strlen((char *)param_4)" identifier = (call_expression "strlen((char *)param_4)" identifier (argument_list "((char *)param_4)" ( (cast_expression "(char *)param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "piStack_b0 = (int *)0x0;" (assignment_expression "piStack_b0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0004cf80(local_64,param_4,param_4 + sVar2);" (call_expression "FUN_0004cf80(local_64,param_4,param_4 + sVar2)" identifier (argument_list "(local_64,param_4,param_4 + sVar2)" ( identifier , identifier , (binary_expression "param_4 + sVar2" identifier + identifier) ))) ;) comment (expression_statement "uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);" (assignment_expression "uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84)" identifier = (call_expression "FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84)" identifier (argument_list "(param_2,local_7c,param_1,param_3,0,0,&local_84)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , (pointer_expression "&local_84" & identifier) )))) ;) (expression_statement "uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);" (assignment_expression "uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80)" identifier = (call_expression "FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80)" identifier (argument_list "(param_2,local_64,param_1,param_3,0,1,&local_80)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }" if (parenthesized_expression "((char)uVar4 == '\0')" ( (binary_expression "(char)uVar4 == '\0'" (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }" { (expression_statement "ppiVar7 = (int **)auStack_ac;" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;" if (parenthesized_expression "((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))" ( (binary_expression "(*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0')" (parenthesized_expression "(*local_80 == 0)" ( (binary_expression "*local_80 == 0" (pointer_expression "*local_80" * identifier) == number_literal) )) || (parenthesized_expression "(ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0')" ( (comma_expression "ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (binary_expression "(char)local_80[2] != '\0'" (cast_expression "(char)local_80[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_80[2]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_0009c8e6;" goto statement_identifier ;)) (expression_statement "local_40 = local_80;" (assignment_expression "local_40 = local_80" identifier = identifier) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_4c = param_3;" (assignment_expression "local_4c = param_3" identifier = identifier) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_48 = local_a4;" (assignment_expression "local_48 = local_a4" identifier = identifier) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);" (call_expression "FUN_00099cc0(local_94,param_1 + 0x104,&local_4c)" identifier (argument_list "(local_94,param_1 + 0x104,&local_4c)" ( identifier , (binary_expression "param_1 + 0x104" identifier + number_literal) , (pointer_expression "&local_4c" & identifier) ))) ;) }) (else_clause "else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }" else (compound_statement "{\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }" { (if_statement "if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }" if (parenthesized_expression "((char)uVar3 != '\0')" ( (binary_expression "(char)uVar3 != '\0'" (cast_expression "(char)uVar3" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }" { (if_statement "if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" if (parenthesized_expression "((char)local_84[2] != '\0')" ( (binary_expression "(char)local_84[2] != '\0'" (cast_expression "(char)local_84[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_84[2]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        piStack_b0 = local_84;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" { (expression_statement "piStack_b0 = local_84;" (assignment_expression "piStack_b0 = local_84" identifier = identifier) ;) comment (expression_statement "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);" (call_expression "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8)" identifier (argument_list "(local_98 + -0x38193,0x163,local_98 + -0x372f8)" ( (binary_expression "local_98 + -0x38193" identifier + number_literal) , number_literal , (binary_expression "local_98 + -0x372f8" identifier + number_literal) ))) ;) })) (expression_statement "local_84[3] = local_a4;" (assignment_expression "local_84[3] = local_a4" (subscript_expression "local_84[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_84[4] = 0;" (assignment_expression "local_84[4] = 0" (subscript_expression "local_84[4]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" if (parenthesized_expression "((char)local_80[2] != '\0')" ( (binary_expression "(char)local_80[2] != '\0'" (cast_expression "(char)local_80[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_80[2]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        piStack_b0 = (int *)0x0;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" { (expression_statement "piStack_b0 = (int *)0x0;" (assignment_expression "piStack_b0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);" (call_expression "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8)" identifier (argument_list "(local_98 + -0x38193,0x163,local_98 + -0x372f8)" ( (binary_expression "local_98 + -0x38193" identifier + number_literal) , number_literal , (binary_expression "local_98 + -0x372f8" identifier + number_literal) ))) ;) })) (expression_statement "local_80[3] = local_a4;" (assignment_expression "local_80[3] = local_a4" (subscript_expression "local_80[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_80[4] = 0;" (assignment_expression "local_80[4] = 0" (subscript_expression "local_80[4]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0009c8e6;" goto statement_identifier ;) })) (expression_statement "ppiVar7 = (int **)auStack_ac;" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;" if (parenthesized_expression "((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))" ( (binary_expression "(*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0')" (parenthesized_expression "(*local_84 == 0)" ( (binary_expression "*local_84 == 0" (pointer_expression "*local_84" * identifier) == number_literal) )) || (parenthesized_expression "(ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0')" ( (comma_expression "ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (binary_expression "(char)local_84[2] == '\0'" (cast_expression "(char)local_84[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_84[2]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_0009c8e6;" goto statement_identifier ;)) (expression_statement "local_28 = local_84;" (assignment_expression "local_28 = local_84" identifier = identifier) ;) (expression_statement "local_34 = param_3;" (assignment_expression "local_34 = param_3" identifier = identifier) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_30 = local_a4;" (assignment_expression "local_30 = local_a4" identifier = identifier) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "FUN_00099cc0(local_94,param_1 + 0x104,&local_34);" (call_expression "FUN_00099cc0(local_94,param_1 + 0x104,&local_34)" identifier (argument_list "(local_94,param_1 + 0x104,&local_34)" ( identifier , (binary_expression "param_1 + 0x104" identifier + number_literal) , (pointer_expression "&local_34" & identifier) ))) ;) }))) (expression_statement "ppiVar7 = &piStack_b0;" (assignment_expression "ppiVar7 = &piStack_b0" identifier = (pointer_expression "&piStack_b0" & identifier)) ;) (labeled_statement "LAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }" statement_identifier : (if_statement "if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }" if (parenthesized_expression "(local_64[0] != local_a0)" ( (binary_expression "local_64[0] != local_a0" (subscript_expression "local_64[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }" { (expression_statement "*(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];" (assignment_expression "*(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0]" (pointer_expression "*(undefined1 **)((int)ppiVar7 + -0x10)" * (cast_expression "(undefined1 **)((int)ppiVar7 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar7 + -0x10)" ( (binary_expression "(int)ppiVar7 + -0x10" (cast_expression "(int)ppiVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_64[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;" (assignment_expression "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902" (pointer_expression "*(undefined4 *)((int)ppiVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar7 + -0x14)" ( (binary_expression "(int)ppiVar7 + -0x14" (cast_expression "(int)ppiVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001807a0();" (call_expression "FUN_001807a0()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }" if (parenthesized_expression "(local_7c[0] != local_9c)" ( (binary_expression "local_7c[0] != local_9c" (subscript_expression "local_7c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }" { (expression_statement "*(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];" (assignment_expression "*(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0]" (pointer_expression "*(undefined1 **)((int)ppiVar7 + -0x10)" * (cast_expression "(undefined1 **)((int)ppiVar7 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar7 + -0x10)" ( (binary_expression "(int)ppiVar7 + -0x10" (cast_expression "(int)ppiVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_7c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;" (assignment_expression "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f" (pointer_expression "*(undefined4 *)((int)ppiVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar7 + -0x14)" ( (binary_expression "(int)ppiVar7 + -0x14" (cast_expression "(int)ppiVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001807a0();" (call_expression "FUN_001807a0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar3 & uVar4;" return (binary_expression "uVar3 & uVar4" identifier & identifier) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: bool include_linkonce_section(Sized_relobj_file<32,_false> * this,\n   Layout * layout, uint index, char * name, Shdr<32,_false> * shdr) */\n\nbool __thiscall\ngold::Sized_relobj_file<32,_false>::include_linkonce_section\n          (Sized_relobj_file<32,_false> *this,Layout *layout,uint index,char *name,\n          Shdr<32,_false> *shdr)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  Comdat_group *pCVar2;\n  char *pcVar3;\n  size_t sVar4;\n  char *pcVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  Kept_section *kept1;\n  Kept_section *kept2;\n  string sig1;\n  string sig2;\n  undefined1 local_4c [8];\n  undefined4 local_44;\n  Kept_section *local_40;\n  uint local_3c;\n  bool local_38;\n  undefined1 local_34 [8];\n  undefined4 local_2c;\n  Kept_section *local_28;\n  uint local_24;\n  bool local_20;\n  \n  iVar6 = 0x10;\n  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;\n  bVar10 = &stack0x00000000 == (undefined1 *)0xac;\n  pbVar7 = (byte *)name;\n  pbVar8 = (byte *)".gnu.linkonce.t.";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar7 < *pbVar8;\n    bVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + 1;\n    pbVar8 = pbVar8 + 1;\n  } while (bVar10);\n  pCVar2 = (Comdat_group *)shdr->p_->sh_size;\n  if ((!bVar9 && !bVar10) == bVar9) {\n    pcVar5 = name + 0x10;\n  }\n  else {\n    pcVar5 = strrchr(name,0x2e);\n    pcVar5 = pcVar5 + 1;\n  }\n  paVar1 = &sig1.field_2;\n  pcVar3 = (char *)0xffffffff;\n  sig1._M_dataplus._M_p = (pointer)paVar1;\n  if (pcVar5 != (char *)0x0) {\n    sVar4 = strlen(pcVar5);\n    pcVar3 = pcVar5 + sVar4;\n  }\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&sig1,pcVar5,pcVar3,0);\n  sig2._M_dataplus._M_p = (pointer)&sig2.field_2;\n  sVar4 = strlen(name);\n                    /* try { // try from 0009c87f to 0009c883 has its CatchHandler @ 0009ca65 */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&sig2,name,name + sVar4,0);\n                    /* try { // try from 0009c89f to 0009ca60 has its CatchHandler @ 0009ca61 */\n  bVar9 = Layout::find_or_add_kept_section(layout,&sig1,(Relobj *)this,index,false,false,&kept1);\n  bVar10 = Layout::find_or_add_kept_section(layout,&sig2,(Relobj *)this,index,false,true,&kept2);\n  if (bVar10) {\n    if (bVar9) {\n      if (kept1->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept1->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept1->u_ + 4) = 0;\n      if (kept2->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept2->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept2->u_ + 4) = 0;\n    }\n    else if ((kept1->object_ != (Relobj *)0x0) && (kept1->is_comdat_ != false)) {\n      local_28 = kept1;\n      local_34._0_4_ = index;\n      local_2c = 0;\n      local_24 = 0;\n      local_20 = false;\n      local_34._4_4_ = pCVar2;\n      std::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34);\n    }\n  }\n  else if ((kept2->object_ != (Relobj *)0x0) && (kept2->is_comdat_ == false)) {\n    local_40 = kept2;\n    local_44 = 0;\n    local_4c._0_4_ = index;\n    local_3c = 0;\n    local_38 = false;\n    local_4c._4_4_ = pCVar2;\n    std::\n    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n    ::\n    _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n              (&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c);\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)sig2._M_dataplus._M_p != &sig2.field_2) {\n    operator_delete(sig2._M_dataplus._M_p);\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)sig1._M_dataplus._M_p != paVar1) {\n    operator_delete(sig1._M_dataplus._M_p);\n  }\n  return bVar9 && bVar10;\n}\n\n" comment comment comment (declaration "bool __thiscall\ngold::Sized_relobj_file<32,_false>::include_linkonce_section\n          (Sized_relobj_file<32,_false> *this,Layout *layout,uint index,char *name,\n          Shdr<32,_false> *shdr)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::include_linkonce_section\n          (Sized_relobj_file<32,_false> *this,Layout *layout,uint index,char *name,\n          Shdr<32,_false> *shdr)\n\n{" identifier > : : (function_declarator "include_linkonce_section\n          (Sized_relobj_file<32,_false> *this,Layout *layout,uint index,char *name,\n          Shdr<32,_false> *shdr)" identifier (parameter_list "(Sized_relobj_file<32,_false> *this,Layout *layout,uint index,char *name,\n          Shdr<32,_false> *shdr)" ( (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "uint index" type_identifier identifier) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "Shdr" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *shdr" type_identifier (ERROR ">" >) (pointer_declarator "*shdr" * identifier)) ))) {) identifier (ERROR "<char" < primitive_type) , (ERROR "_std::" identifier : :) identifier (ERROR "<char>" < primitive_type >) , (ERROR "_std::allocator<char>_>_9" identifier : : identifier < primitive_type > identifier > identifier) (pointer_declarator "*paVar1" * identifier) ;) (declaration "Comdat_group *pCVar2;" type_identifier (pointer_declarator "*pCVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "Kept_section *kept1;" type_identifier (pointer_declarator "*kept1" * identifier) ;) (declaration "Kept_section *kept2;" type_identifier (pointer_declarator "*kept2" * identifier) ;) (declaration "string sig1;" type_identifier identifier ;) (declaration "string sig2;" type_identifier identifier ;) (declaration "undefined1 local_4c [8];" type_identifier (array_declarator "local_4c [8]" identifier [ number_literal ]) ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "Kept_section *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "bool local_38;" primitive_type identifier ;) (declaration "undefined1 local_34 [8];" type_identifier (array_declarator "local_34 [8]" identifier [ number_literal ]) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "Kept_section *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "bool local_20;" primitive_type identifier ;) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" identifier = number_literal) ;) (expression_statement "bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;" (assignment_expression "bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c" identifier = (binary_expression "&stack0xfffffff0 < (undefined1 *)0x9c" (pointer_expression "&stack0xfffffff0" & identifier) < (cast_expression "(undefined1 *)0x9c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar10 = &stack0x00000000 == (undefined1 *)0xac;" (assignment_expression "bVar10 = &stack0x00000000 == (undefined1 *)0xac" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xac" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xac" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar7 = (byte *)name;" (assignment_expression "pbVar7 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar8 = (byte *)".gnu.linkonce.t.";" (assignment_expression "pbVar8 = (byte *)".gnu.linkonce.t."" identifier = (cast_expression "(byte *)".gnu.linkonce.t."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.t."" " string_content "))) ;) (do_statement "do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar7 < *pbVar8;\n    bVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + 1;\n    pbVar8 = pbVar8 + 1;\n  } while (bVar10);" do (compound_statement "{\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar7 < *pbVar8;\n    bVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + 1;\n    pbVar8 = pbVar8 + 1;\n  }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar7 < *pbVar8;" (assignment_expression "bVar9 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar8;" (assignment_expression "bVar10 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "pCVar2 = (Comdat_group *)shdr->p_->sh_size;" (assignment_expression "pCVar2 = (Comdat_group *)shdr->p_->sh_size" identifier = (cast_expression "(Comdat_group *)shdr->p_->sh_size" ( (type_descriptor "Comdat_group *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "shdr->p_->sh_size" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier))) ;) (if_statement "if ((!bVar9 && !bVar10) == bVar9) {\n    pcVar5 = name + 0x10;\n  }\n  else {\n    pcVar5 = strrchr(name,0x2e);\n    pcVar5 = pcVar5 + 1;\n  }" if (parenthesized_expression "((!bVar9 && !bVar10) == bVar9)" ( (binary_expression "(!bVar9 && !bVar10) == bVar9" (parenthesized_expression "(!bVar9 && !bVar10)" ( (binary_expression "!bVar9 && !bVar10" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier) )) (compound_statement "{\n    pcVar5 = name + 0x10;\n  }" { (expression_statement "pcVar5 = name + 0x10;" (assignment_expression "pcVar5 = name + 0x10" identifier = (binary_expression "name + 0x10" identifier + number_literal)) ;) }) (else_clause "else {\n    pcVar5 = strrchr(name,0x2e);\n    pcVar5 = pcVar5 + 1;\n  }" else (compound_statement "{\n    pcVar5 = strrchr(name,0x2e);\n    pcVar5 = pcVar5 + 1;\n  }" { (expression_statement "pcVar5 = strrchr(name,0x2e);" (assignment_expression "pcVar5 = strrchr(name,0x2e)" identifier = (call_expression "strrchr(name,0x2e)" identifier (argument_list "(name,0x2e)" ( identifier , number_literal )))) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "paVar1 = &sig1.field_2;" (assignment_expression "paVar1 = &sig1.field_2" identifier = (pointer_expression "&sig1.field_2" & (field_expression "sig1.field_2" identifier . field_identifier))) ;) (expression_statement "pcVar3 = (char *)0xffffffff;" (assignment_expression "pcVar3 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sig1._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "sig1._M_dataplus._M_p = (pointer)paVar1" (field_expression "sig1._M_dataplus._M_p" (field_expression "sig1._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (pcVar5 != (char *)0x0) {\n    sVar4 = strlen(pcVar5);\n    pcVar3 = pcVar5 + sVar4;\n  }" if (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar4 = strlen(pcVar5);\n    pcVar3 = pcVar5 + sVar4;\n  }" { (expression_statement "sVar4 = strlen(pcVar5);" (assignment_expression "sVar4 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "pcVar3 = pcVar5 + sVar4;" (assignment_expression "pcVar3 = pcVar5 + sVar4" identifier = (binary_expression "pcVar5 + sVar4" identifier + identifier)) ;) })) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&sig1,pcVar5,pcVar3,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&sig1,pcVar5,pcVar3,0);" (binary_expression "_M_construct<char_const*>(&sig1,pcVar5,pcVar3,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&sig1,pcVar5,pcVar3,0)" ( (comma_expression "&sig1,pcVar5,pcVar3,0" (pointer_expression "&sig1" & identifier) , (comma_expression "pcVar5,pcVar3,0" identifier , (comma_expression "pcVar3,0" identifier , number_literal))) ))) ;)) (expression_statement "sig2._M_dataplus._M_p = (pointer)&sig2.field_2;" (assignment_expression "sig2._M_dataplus._M_p = (pointer)&sig2.field_2" (field_expression "sig2._M_dataplus._M_p" (field_expression "sig2._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&sig2.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "sig2.field_2" identifier . field_identifier))) ;) (expression_statement "sVar4 = strlen(name);" (assignment_expression "sVar4 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&sig2,name,name + sVar4,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&sig2,name,name + sVar4,0);" (binary_expression "_M_construct<char_const*>(&sig2,name,name + sVar4,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&sig2,name,name + sVar4,0)" ( (comma_expression "&sig2,name,name + sVar4,0" (pointer_expression "&sig2" & identifier) , (comma_expression "name,name + sVar4,0" identifier , (comma_expression "name + sVar4,0" (binary_expression "name + sVar4" identifier + identifier) , number_literal))) ))) ;)) comment (ERROR "bVar9 = Layout::" (assignment_expression "bVar9 = Layout" identifier = identifier) : :) (expression_statement "find_or_add_kept_section(layout,&sig1,(Relobj *)this,index,false,false,&kept1);" (call_expression "find_or_add_kept_section(layout,&sig1,(Relobj *)this,index,false,false,&kept1)" identifier (argument_list "(layout,&sig1,(Relobj *)this,index,false,false,&kept1)" ( identifier , (pointer_expression "&sig1" & identifier) , (cast_expression "(Relobj *)this" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , false , false , (pointer_expression "&kept1" & identifier) ))) ;) (ERROR "bVar10 = Layout::" (assignment_expression "bVar10 = Layout" identifier = identifier) : :) (expression_statement "find_or_add_kept_section(layout,&sig2,(Relobj *)this,index,false,true,&kept2);" (call_expression "find_or_add_kept_section(layout,&sig2,(Relobj *)this,index,false,true,&kept2)" identifier (argument_list "(layout,&sig2,(Relobj *)this,index,false,true,&kept2)" ( identifier , (pointer_expression "&sig2" & identifier) , (cast_expression "(Relobj *)this" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , false , true , (pointer_expression "&kept2" & identifier) ))) ;) (if_statement "if (bVar10) {\n    if (bVar9) {\n      if (kept1->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept1->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept1->u_ + 4) = 0;\n      if (kept2->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept2->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept2->u_ + 4) = 0;\n    }\n    else if ((kept1->object_ != (Relobj *)0x0) && (kept1->is_comdat_ != false)) {\n      local_28 = kept1;\n      local_34._0_4_ = index;\n      local_2c = 0;\n      local_24 = 0;\n      local_20 = false;\n      local_34._4_4_ = pCVar2;\n      std::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34);\n    }\n  }\n  else if ((kept2->object_ != (Relobj *)0x0) && (kept2->is_comdat_ == false)) {\n    local_40 = kept2;\n    local_44 = 0;\n    local_4c._0_4_ = index;\n    local_3c = 0;\n    local_38 = false;\n    local_4c._4_4_ = pCVar2;\n    std::\n    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n    ::\n    _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n              (&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c);\n  }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n    if (bVar9) {\n      if (kept1->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept1->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept1->u_ + 4) = 0;\n      if (kept2->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept2->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept2->u_ + 4) = 0;\n    }\n    else if ((kept1->object_ != (Relobj *)0x0) && (kept1->is_comdat_ != false)) {\n      local_28 = kept1;\n      local_34._0_4_ = index;\n      local_2c = 0;\n      local_24 = 0;\n      local_20 = false;\n      local_34._4_4_ = pCVar2;\n      std::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34);\n    }\n  }" { (if_statement "if (bVar9) {\n      if (kept1->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept1->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept1->u_ + 4) = 0;\n      if (kept2->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept2->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept2->u_ + 4) = 0;\n    }\n    else if ((kept1->object_ != (Relobj *)0x0) && (kept1->is_comdat_ != false)) {\n      local_28 = kept1;\n      local_34._0_4_ = index;\n      local_2c = 0;\n      local_24 = 0;\n      local_20 = false;\n      local_34._4_4_ = pCVar2;\n      std::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34);\n    }" if (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n      if (kept1->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept1->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept1->u_ + 4) = 0;\n      if (kept2->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }\n      (kept2->u_).group_sections = pCVar2;\n      *(undefined4 *)((int)&kept2->u_ + 4) = 0;\n    }" { (if_statement "if (kept1->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }" if (parenthesized_expression "(kept1->is_comdat_ != false)" ( (binary_expression "kept1->is_comdat_ != false" (field_expression "kept1->is_comdat_" identifier -> field_identifier) != false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");" (call_expression "do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size")" identifier (argument_list "("../../gold/layout.h",0x163,"set_linkonce_size")" ( (string_literal ""../../gold/layout.h"" " string_content ") , number_literal , (string_literal ""set_linkonce_size"" " string_content ") ))) ;) })) (expression_statement "(kept1->u_).group_sections = pCVar2;" (assignment_expression "(kept1->u_).group_sections = pCVar2" (field_expression "(kept1->u_).group_sections" (parenthesized_expression "(kept1->u_)" ( (field_expression "kept1->u_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)&kept1->u_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&kept1->u_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&kept1->u_ + 4)" * (cast_expression "(undefined4 *)((int)&kept1->u_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&kept1->u_ + 4)" ( (binary_expression "(int)&kept1->u_ + 4" (cast_expression "(int)&kept1->u_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&kept1->u_" & (field_expression "kept1->u_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (if_statement "if (kept2->is_comdat_ != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }" if (parenthesized_expression "(kept2->is_comdat_ != false)" ( (binary_expression "kept2->is_comdat_ != false" (field_expression "kept2->is_comdat_" identifier -> field_identifier) != false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size");" (call_expression "do_gold_unreachable("../../gold/layout.h",0x163,"set_linkonce_size")" identifier (argument_list "("../../gold/layout.h",0x163,"set_linkonce_size")" ( (string_literal ""../../gold/layout.h"" " string_content ") , number_literal , (string_literal ""set_linkonce_size"" " string_content ") ))) ;) })) (expression_statement "(kept2->u_).group_sections = pCVar2;" (assignment_expression "(kept2->u_).group_sections = pCVar2" (field_expression "(kept2->u_).group_sections" (parenthesized_expression "(kept2->u_)" ( (field_expression "kept2->u_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)&kept2->u_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&kept2->u_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&kept2->u_ + 4)" * (cast_expression "(undefined4 *)((int)&kept2->u_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&kept2->u_ + 4)" ( (binary_expression "(int)&kept2->u_ + 4" (cast_expression "(int)&kept2->u_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&kept2->u_" & (field_expression "kept2->u_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) }) (else_clause "else if ((kept1->object_ != (Relobj *)0x0) && (kept1->is_comdat_ != false)) {\n      local_28 = kept1;\n      local_34._0_4_ = index;\n      local_2c = 0;\n      local_24 = 0;\n      local_20 = false;\n      local_34._4_4_ = pCVar2;\n      std::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34);\n    }" else (if_statement "if ((kept1->object_ != (Relobj *)0x0) && (kept1->is_comdat_ != false)) {\n      local_28 = kept1;\n      local_34._0_4_ = index;\n      local_2c = 0;\n      local_24 = 0;\n      local_20 = false;\n      local_34._4_4_ = pCVar2;\n      std::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34);\n    }" if (parenthesized_expression "((kept1->object_ != (Relobj *)0x0) && (kept1->is_comdat_ != false))" ( (binary_expression "(kept1->object_ != (Relobj *)0x0) && (kept1->is_comdat_ != false)" (parenthesized_expression "(kept1->object_ != (Relobj *)0x0)" ( (binary_expression "kept1->object_ != (Relobj *)0x0" (field_expression "kept1->object_" identifier -> field_identifier) != (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(kept1->is_comdat_ != false)" ( (binary_expression "kept1->is_comdat_ != false" (field_expression "kept1->is_comdat_" identifier -> field_identifier) != false) ))) )) (compound_statement "{\n      local_28 = kept1;\n      local_34._0_4_ = index;\n      local_2c = 0;\n      local_24 = 0;\n      local_20 = false;\n      local_34._4_4_ = pCVar2;\n      std::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34);\n    }" { (expression_statement "local_28 = kept1;" (assignment_expression "local_28 = kept1" identifier = identifier) ;) (expression_statement "local_34._0_4_ = index;" (assignment_expression "local_34._0_4_ = index" (field_expression "local_34._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = false;" (assignment_expression "local_20 = false" identifier = false) ;) (expression_statement "local_34._4_4_ = pCVar2;" (assignment_expression "local_34._4_4_ = pCVar2" (field_expression "local_34._4_4_" identifier . field_identifier) = identifier) ;) (ERROR "std::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std::pair<unsigned_int,_gold::" (comma_expression "std::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std" identifier (ERROR "::\n      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>" : : (comma_expression "_Rb_tree<unsigned_int,_std" (binary_expression "_Rb_tree<unsigned_int" identifier < identifier) , identifier) : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section>,_std" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section>,_std" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > (ERROR "," ,) identifier)) : : (binary_expression "_Select1st<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section>_>,_std" (binary_expression "_false>::Kept_comdat_section>_" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "less<unsigned_int" identifier < identifier) >) , identifier) : : identifier < identifier : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique<std" (binary_expression "_false>::Kept_comdat_section>_>_>\n      ::\n      _M_emplace_unique" (binary_expression "_false>::Kept_comdat_section>_>_" (binary_expression "_false>::Kept_comdat_section>_" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) : : (comma_expression "pair<unsigned_int,_gold" (binary_expression "pair<unsigned_int" identifier < identifier) , identifier) : :) (expression_statement "Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34);" (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34)" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section>_>\n                (&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34)" (binary_expression "_false>::Kept_comdat_section>_" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "(&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34)" ( (comma_expression "&(this->kept_comdat_sections_)._M_t,\n                 (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34)" (pointer_expression "&(this->kept_comdat_sections_)._M_t" & (field_expression "(this->kept_comdat_sections_)._M_t" (parenthesized_expression "(this->kept_comdat_sections_)" ( (field_expression "this->kept_comdat_sections_" identifier -> field_identifier) )) . field_identifier)) , (parenthesized_expression "(pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34)" ( (ERROR "pair<unsigned_int,_gold::" (comma_expression "pair<unsigned_int,_gold" (binary_expression "pair<unsigned_int" identifier < identifier) , identifier) : :) (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n                 local_34" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section> *)\n                 local_34" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > (pointer_expression "*)\n                 local_34" * (ERROR ")" )) identifier))) ))) )))) ;) })))) }) (else_clause "else if ((kept2->object_ != (Relobj *)0x0) && (kept2->is_comdat_ == false)) {\n    local_40 = kept2;\n    local_44 = 0;\n    local_4c._0_4_ = index;\n    local_3c = 0;\n    local_38 = false;\n    local_4c._4_4_ = pCVar2;\n    std::\n    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n    ::\n    _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n              (&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c);\n  }" else (if_statement "if ((kept2->object_ != (Relobj *)0x0) && (kept2->is_comdat_ == false)) {\n    local_40 = kept2;\n    local_44 = 0;\n    local_4c._0_4_ = index;\n    local_3c = 0;\n    local_38 = false;\n    local_4c._4_4_ = pCVar2;\n    std::\n    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n    ::\n    _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n              (&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c);\n  }" if (parenthesized_expression "((kept2->object_ != (Relobj *)0x0) && (kept2->is_comdat_ == false))" ( (binary_expression "(kept2->object_ != (Relobj *)0x0) && (kept2->is_comdat_ == false)" (parenthesized_expression "(kept2->object_ != (Relobj *)0x0)" ( (binary_expression "kept2->object_ != (Relobj *)0x0" (field_expression "kept2->object_" identifier -> field_identifier) != (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(kept2->is_comdat_ == false)" ( (binary_expression "kept2->is_comdat_ == false" (field_expression "kept2->is_comdat_" identifier -> field_identifier) == false) ))) )) (compound_statement "{\n    local_40 = kept2;\n    local_44 = 0;\n    local_4c._0_4_ = index;\n    local_3c = 0;\n    local_38 = false;\n    local_4c._4_4_ = pCVar2;\n    std::\n    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n    ::\n    _M_emplace_unique<std::pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n              (&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c);\n  }" { (expression_statement "local_40 = kept2;" (assignment_expression "local_40 = kept2" identifier = identifier) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_4c._0_4_ = index;" (assignment_expression "local_4c._0_4_ = index" (field_expression "local_4c._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_38 = false;" (assignment_expression "local_38 = false" identifier = false) ;) (expression_statement "local_4c._4_4_ = pCVar2;" (assignment_expression "local_4c._4_4_ = pCVar2" (field_expression "local_4c._4_4_" identifier . field_identifier) = identifier) ;) (ERROR "std::\n    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n    ::\n    _M_emplace_unique<std::pair<unsigned_int,_gold::" (comma_expression "std::\n    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>,_std" identifier (ERROR "::\n    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std::less<unsigned_int>" : : (comma_expression "_Rb_tree<unsigned_int,_std" (binary_expression "_Rb_tree<unsigned_int" identifier < identifier) , identifier) : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section>,_std" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section>,_std" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > (ERROR "," ,) identifier)) : : (binary_expression "_Select1st<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section>_>,_std" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section>_>,_std" (binary_expression "_false>::Kept_comdat_section>_" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "less<unsigned_int" identifier < identifier) >) , identifier) : : identifier < identifier : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section>_>_>\n    ::\n    _M_emplace_unique<std" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section>_>_>\n    ::\n    _M_emplace_unique<std" (binary_expression "_false>::Kept_comdat_section>_>_>\n    ::\n    _M_emplace_unique" (binary_expression "_false>::Kept_comdat_section>_>_" (binary_expression "_false>::Kept_comdat_section>_" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) : : (comma_expression "pair<unsigned_int,_gold" (binary_expression "pair<unsigned_int" identifier < identifier) , identifier) : :) (expression_statement "Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n              (&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c);" (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section>_>\n              (&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c)" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section>_>\n              (&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c)" (binary_expression "_false>::Kept_comdat_section>_" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "(&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c)" ( (comma_expression "&(this->kept_comdat_sections_)._M_t,\n               (pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c)" (pointer_expression "&(this->kept_comdat_sections_)._M_t" & (field_expression "(this->kept_comdat_sections_)._M_t" (parenthesized_expression "(this->kept_comdat_sections_)" ( (field_expression "this->kept_comdat_sections_" identifier -> field_identifier) )) . field_identifier)) , (parenthesized_expression "(pair<unsigned_int,_gold::Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c)" ( (ERROR "pair<unsigned_int,_gold::" (comma_expression "pair<unsigned_int,_gold" (binary_expression "pair<unsigned_int" identifier < identifier) , identifier) : :) (comma_expression "Sized_relobj_file<32,_false>::Kept_comdat_section> *)\n               local_4c" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Kept_comdat_section> *)\n               local_4c" (binary_expression "_false>::Kept_comdat_section" identifier > (ERROR "::" : :) identifier) > (pointer_expression "*)\n               local_4c" * (ERROR ")" )) identifier))) ))) )))) ;) })))) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)sig2._M_dataplus._M_p != &sig2.field_2) {\n    operator_delete(sig2._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       *)sig2._M_dataplus._M_p != &sig2.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)sig2._M_dataplus._M_p != &sig2.field_2)" ( (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       *)sig2._M_dataplus._M_p != &sig2.field_2" (binary_expression "allocator<char>_>_9\n       *)sig2._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)sig2._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "sig2._M_dataplus._M_p" (field_expression "sig2._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&sig2.field_2" & (field_expression "sig2.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    operator_delete(sig2._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(sig2._M_dataplus._M_p);" (call_expression "operator_delete(sig2._M_dataplus._M_p)" identifier (argument_list "(sig2._M_dataplus._M_p)" ( (field_expression "sig2._M_dataplus._M_p" (field_expression "sig2._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)sig1._M_dataplus._M_p != paVar1) {\n    operator_delete(sig1._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       *)sig1._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       *)sig1._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       *)sig1._M_dataplus._M_p != paVar1" (binary_expression "allocator<char>_>_9\n       *)sig1._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)sig1._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "sig1._M_dataplus._M_p" (field_expression "sig1._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n    operator_delete(sig1._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(sig1._M_dataplus._M_p);" (call_expression "operator_delete(sig1._M_dataplus._M_p)" identifier (argument_list "(sig1._M_dataplus._M_p)" ( (field_expression "sig1._M_dataplus._M_p" (field_expression "sig1._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (return_statement "return bVar9 && bVar10;" return (binary_expression "bVar9 && bVar10" identifier && identifier) ;) (ERROR "}" }))
(translation_unit "uint FUN_0009c7d0(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)\n\n{\n  byte *pbVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int **ppiVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  int *piStack_b0;\n  undefined1 auStack_ac [8];\n  int local_a4;\n  undefined1 *local_a0;\n  undefined1 *local_9c;\n  undefined **local_98;\n  undefined1 local_94 [16];\n  int *local_84;\n  int *local_80;\n  undefined1 *local_7c [2];\n  undefined1 local_74 [16];\n  undefined1 *local_64 [2];\n  undefined1 local_5c [16];\n  undefined4 local_4c;\n  int local_48;\n  undefined4 local_44;\n  int *local_40;\n  undefined4 local_3c;\n  undefined1 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  undefined4 local_24;\n  undefined1 local_20;\n  \n  local_98 = &__DT_PLTGOT;\n  iVar6 = 0x10;\n  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;\n  bVar10 = &stack0x00000000 == (undefined1 *)0xac;\n  pbVar8 = param_4;\n  pbVar1 = (byte *)".gnu.linkonce.t.";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);\n  local_a4 = *(int *)(*param_5 + 0x14);\n  if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }\n  ppiVar7 = (int **)auStack_ac;\n  local_9c = local_74;\n  pbVar1 = (byte *)0xffffffff;\n  local_7c[0] = local_9c;\n  if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }\n  piStack_b0 = (int *)0x0;\n  FUN_0004cf80(local_7c,pbVar8,pbVar1);\n  local_a0 = local_5c;\n  local_64[0] = local_a0;\n  sVar2 = strlen((char *)param_4);\n  piStack_b0 = (int *)0x0;\n                    \n  FUN_0004cf80(local_64,param_4,param_4 + sVar2);\n                    \n  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);\n  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);\n  if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }\n  ppiVar7 = &piStack_b0;\nLAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }\n  if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }\n  return uVar3 & uVar4;\n}\n\n" (function_definition "uint FUN_0009c7d0(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)\n\n{\n  byte *pbVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int **ppiVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  int *piStack_b0;\n  undefined1 auStack_ac [8];\n  int local_a4;\n  undefined1 *local_a0;\n  undefined1 *local_9c;\n  undefined **local_98;\n  undefined1 local_94 [16];\n  int *local_84;\n  int *local_80;\n  undefined1 *local_7c [2];\n  undefined1 local_74 [16];\n  undefined1 *local_64 [2];\n  undefined1 local_5c [16];\n  undefined4 local_4c;\n  int local_48;\n  undefined4 local_44;\n  int *local_40;\n  undefined4 local_3c;\n  undefined1 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  undefined4 local_24;\n  undefined1 local_20;\n  \n  local_98 = &__DT_PLTGOT;\n  iVar6 = 0x10;\n  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;\n  bVar10 = &stack0x00000000 == (undefined1 *)0xac;\n  pbVar8 = param_4;\n  pbVar1 = (byte *)".gnu.linkonce.t.";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);\n  local_a4 = *(int *)(*param_5 + 0x14);\n  if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }\n  ppiVar7 = (int **)auStack_ac;\n  local_9c = local_74;\n  pbVar1 = (byte *)0xffffffff;\n  local_7c[0] = local_9c;\n  if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }\n  piStack_b0 = (int *)0x0;\n  FUN_0004cf80(local_7c,pbVar8,pbVar1);\n  local_a0 = local_5c;\n  local_64[0] = local_a0;\n  sVar2 = strlen((char *)param_4);\n  piStack_b0 = (int *)0x0;\n                    \n  FUN_0004cf80(local_64,param_4,param_4 + sVar2);\n                    \n  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);\n  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);\n  if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }\n  ppiVar7 = &piStack_b0;\nLAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }\n  if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }\n  return uVar3 & uVar4;\n}" type_identifier (function_declarator "FUN_0009c7d0(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int **ppiVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  int *piStack_b0;\n  undefined1 auStack_ac [8];\n  int local_a4;\n  undefined1 *local_a0;\n  undefined1 *local_9c;\n  undefined **local_98;\n  undefined1 local_94 [16];\n  int *local_84;\n  int *local_80;\n  undefined1 *local_7c [2];\n  undefined1 local_74 [16];\n  undefined1 *local_64 [2];\n  undefined1 local_5c [16];\n  undefined4 local_4c;\n  int local_48;\n  undefined4 local_44;\n  int *local_40;\n  undefined4 local_3c;\n  undefined1 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  undefined4 local_24;\n  undefined1 local_20;\n  \n  local_98 = &__DT_PLTGOT;\n  iVar6 = 0x10;\n  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;\n  bVar10 = &stack0x00000000 == (undefined1 *)0xac;\n  pbVar8 = param_4;\n  pbVar1 = (byte *)".gnu.linkonce.t.";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);\n  local_a4 = *(int *)(*param_5 + 0x14);\n  if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }\n  ppiVar7 = (int **)auStack_ac;\n  local_9c = local_74;\n  pbVar1 = (byte *)0xffffffff;\n  local_7c[0] = local_9c;\n  if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }\n  piStack_b0 = (int *)0x0;\n  FUN_0004cf80(local_7c,pbVar8,pbVar1);\n  local_a0 = local_5c;\n  local_64[0] = local_a0;\n  sVar2 = strlen((char *)param_4);\n  piStack_b0 = (int *)0x0;\n                    \n  FUN_0004cf80(local_64,param_4,param_4 + sVar2);\n                    \n  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);\n  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);\n  if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }\n  ppiVar7 = &piStack_b0;\nLAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }\n  if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }\n  return uVar3 & uVar4;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int **ppiVar7;" primitive_type (pointer_declarator "**ppiVar7" * (pointer_declarator "*ppiVar7" * identifier)) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int *piStack_b0;" primitive_type (pointer_declarator "*piStack_b0" * identifier) ;) (declaration "undefined1 auStack_ac [8];" type_identifier (array_declarator "auStack_ac [8]" identifier [ number_literal ]) ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "undefined1 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "undefined1 *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "undefined **local_98;" type_identifier (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)) ;) (declaration "undefined1 local_94 [16];" type_identifier (array_declarator "local_94 [16]" identifier [ number_literal ]) ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "int *local_80;" primitive_type (pointer_declarator "*local_80" * identifier) ;) (declaration "undefined1 *local_7c [2];" type_identifier (pointer_declarator "*local_7c [2]" * (array_declarator "local_7c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_74 [16];" type_identifier (array_declarator "local_74 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_64 [2];" type_identifier (pointer_declarator "*local_64 [2]" * (array_declarator "local_64 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_5c [16];" type_identifier (array_declarator "local_5c [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined1 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined1 local_20;" type_identifier identifier ;) (expression_statement "local_98 = &__DT_PLTGOT;" (assignment_expression "local_98 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" identifier = number_literal) ;) (expression_statement "bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;" (assignment_expression "bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c" identifier = (binary_expression "&stack0xfffffff0 < (undefined1 *)0x9c" (pointer_expression "&stack0xfffffff0" & identifier) < (cast_expression "(undefined1 *)0x9c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar10 = &stack0x00000000 == (undefined1 *)0xac;" (assignment_expression "bVar10 = &stack0x00000000 == (undefined1 *)0xac" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xac" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xac" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar8 = param_4;" (assignment_expression "pbVar8 = param_4" identifier = identifier) ;) (expression_statement "pbVar1 = (byte *)".gnu.linkonce.t.";" (assignment_expression "pbVar1 = (byte *)".gnu.linkonce.t."" identifier = (cast_expression "(byte *)".gnu.linkonce.t."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.t."" " string_content "))) ;) (do_statement "do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);" do (compound_statement "{\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar8 < *pbVar1;" (assignment_expression "bVar9 = *pbVar8 < *pbVar1" identifier = (binary_expression "*pbVar8 < *pbVar1" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar1" * identifier))) ;) (expression_statement "bVar10 = *pbVar8 == *pbVar1;" (assignment_expression "bVar10 = *pbVar8 == *pbVar1" identifier = (binary_expression "*pbVar8 == *pbVar1" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar1" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar1 = pbVar1 + 1;" (assignment_expression "pbVar1 = pbVar1 + 1" identifier = (binary_expression "pbVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "local_a4 = *(int *)(*param_5 + 0x14);" (assignment_expression "local_a4 = *(int *)(*param_5 + 0x14)" identifier = (pointer_expression "*(int *)(*param_5 + 0x14)" * (cast_expression "(int *)(*param_5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0x14)" ( (binary_expression "*param_5 + 0x14" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (if_statement "if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }" if (parenthesized_expression "((!bVar9 && !bVar10) == bVar9)" ( (binary_expression "(!bVar9 && !bVar10) == bVar9" (parenthesized_expression "(!bVar9 && !bVar10)" ( (binary_expression "!bVar9 && !bVar10" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier) )) (compound_statement "{\n    pbVar8 = param_4 + 0x10;\n  }" { (expression_statement "pbVar8 = param_4 + 0x10;" (assignment_expression "pbVar8 = param_4 + 0x10" identifier = (binary_expression "param_4 + 0x10" identifier + number_literal)) ;) }) (else_clause "else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }" else (compound_statement "{\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }" { (expression_statement "pcVar5 = strrchr((char *)param_4,0x2e);" (assignment_expression "pcVar5 = strrchr((char *)param_4,0x2e)" identifier = (call_expression "strrchr((char *)param_4,0x2e)" identifier (argument_list "((char *)param_4,0x2e)" ( (cast_expression "(char *)param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pbVar8 = (byte *)(pcVar5 + 1);" (assignment_expression "pbVar8 = (byte *)(pcVar5 + 1)" identifier = (cast_expression "(byte *)(pcVar5 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 1)" ( (binary_expression "pcVar5 + 1" identifier + number_literal) )))) ;) }))) (expression_statement "ppiVar7 = (int **)auStack_ac;" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "local_9c = local_74;" (assignment_expression "local_9c = local_74" identifier = identifier) ;) (expression_statement "pbVar1 = (byte *)0xffffffff;" (assignment_expression "pbVar1 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_7c[0] = local_9c;" (assignment_expression "local_7c[0] = local_9c" (subscript_expression "local_7c[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }" if (parenthesized_expression "(pbVar8 != (byte *)0x0)" ( (binary_expression "pbVar8 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }" { (expression_statement "sVar2 = strlen((char *)pbVar8);" (assignment_expression "sVar2 = strlen((char *)pbVar8)" identifier = (call_expression "strlen((char *)pbVar8)" identifier (argument_list "((char *)pbVar8)" ( (cast_expression "(char *)pbVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar1 = pbVar8 + sVar2;" (assignment_expression "pbVar1 = pbVar8 + sVar2" identifier = (binary_expression "pbVar8 + sVar2" identifier + identifier)) ;) })) (expression_statement "piStack_b0 = (int *)0x0;" (assignment_expression "piStack_b0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0004cf80(local_7c,pbVar8,pbVar1);" (call_expression "FUN_0004cf80(local_7c,pbVar8,pbVar1)" identifier (argument_list "(local_7c,pbVar8,pbVar1)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_a0 = local_5c;" (assignment_expression "local_a0 = local_5c" identifier = identifier) ;) (expression_statement "local_64[0] = local_a0;" (assignment_expression "local_64[0] = local_a0" (subscript_expression "local_64[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar2 = strlen((char *)param_4);" (assignment_expression "sVar2 = strlen((char *)param_4)" identifier = (call_expression "strlen((char *)param_4)" identifier (argument_list "((char *)param_4)" ( (cast_expression "(char *)param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "piStack_b0 = (int *)0x0;" (assignment_expression "piStack_b0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0004cf80(local_64,param_4,param_4 + sVar2);" (call_expression "FUN_0004cf80(local_64,param_4,param_4 + sVar2)" identifier (argument_list "(local_64,param_4,param_4 + sVar2)" ( identifier , identifier , (binary_expression "param_4 + sVar2" identifier + identifier) ))) ;) (expression_statement "uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);" (assignment_expression "uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84)" identifier = (call_expression "FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84)" identifier (argument_list "(param_2,local_7c,param_1,param_3,0,0,&local_84)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , (pointer_expression "&local_84" & identifier) )))) ;) (expression_statement "uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);" (assignment_expression "uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80)" identifier = (call_expression "FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80)" identifier (argument_list "(param_2,local_64,param_1,param_3,0,1,&local_80)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }" if (parenthesized_expression "((char)uVar4 == '\0')" ( (binary_expression "(char)uVar4 == '\0'" (cast_expression "(char)uVar4" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }" { (expression_statement "ppiVar7 = (int **)auStack_ac;" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;" if (parenthesized_expression "((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))" ( (binary_expression "(*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0')" (parenthesized_expression "(*local_80 == 0)" ( (binary_expression "*local_80 == 0" (pointer_expression "*local_80" * identifier) == number_literal) )) || (parenthesized_expression "(ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0')" ( (comma_expression "ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (binary_expression "(char)local_80[2] != '\0'" (cast_expression "(char)local_80[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_80[2]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_0009c8e6;" goto statement_identifier ;)) (expression_statement "local_40 = local_80;" (assignment_expression "local_40 = local_80" identifier = identifier) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_4c = param_3;" (assignment_expression "local_4c = param_3" identifier = identifier) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_48 = local_a4;" (assignment_expression "local_48 = local_a4" identifier = identifier) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);" (call_expression "FUN_00099cc0(local_94,param_1 + 0x104,&local_4c)" identifier (argument_list "(local_94,param_1 + 0x104,&local_4c)" ( identifier , (binary_expression "param_1 + 0x104" identifier + number_literal) , (pointer_expression "&local_4c" & identifier) ))) ;) }) (else_clause "else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }" else (compound_statement "{\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }" { (if_statement "if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }" if (parenthesized_expression "((char)uVar3 != '\0')" ( (binary_expression "(char)uVar3 != '\0'" (cast_expression "(char)uVar3" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }" { (if_statement "if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" if (parenthesized_expression "((char)local_84[2] != '\0')" ( (binary_expression "(char)local_84[2] != '\0'" (cast_expression "(char)local_84[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_84[2]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" { (expression_statement "piStack_b0 = local_84;" (assignment_expression "piStack_b0 = local_84" identifier = identifier) ;) (expression_statement "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);" (call_expression "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8)" identifier (argument_list "(local_98 + -0x38193,0x163,local_98 + -0x372f8)" ( (binary_expression "local_98 + -0x38193" identifier + number_literal) , number_literal , (binary_expression "local_98 + -0x372f8" identifier + number_literal) ))) ;) })) (expression_statement "local_84[3] = local_a4;" (assignment_expression "local_84[3] = local_a4" (subscript_expression "local_84[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_84[4] = 0;" (assignment_expression "local_84[4] = 0" (subscript_expression "local_84[4]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" if (parenthesized_expression "((char)local_80[2] != '\0')" ( (binary_expression "(char)local_80[2] != '\0'" (cast_expression "(char)local_80[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_80[2]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" { (expression_statement "piStack_b0 = (int *)0x0;" (assignment_expression "piStack_b0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);" (call_expression "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8)" identifier (argument_list "(local_98 + -0x38193,0x163,local_98 + -0x372f8)" ( (binary_expression "local_98 + -0x38193" identifier + number_literal) , number_literal , (binary_expression "local_98 + -0x372f8" identifier + number_literal) ))) ;) })) (expression_statement "local_80[3] = local_a4;" (assignment_expression "local_80[3] = local_a4" (subscript_expression "local_80[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_80[4] = 0;" (assignment_expression "local_80[4] = 0" (subscript_expression "local_80[4]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0009c8e6;" goto statement_identifier ;) })) (expression_statement "ppiVar7 = (int **)auStack_ac;" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;" if (parenthesized_expression "((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))" ( (binary_expression "(*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0')" (parenthesized_expression "(*local_84 == 0)" ( (binary_expression "*local_84 == 0" (pointer_expression "*local_84" * identifier) == number_literal) )) || (parenthesized_expression "(ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0')" ( (comma_expression "ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'" (assignment_expression "ppiVar7 = (int **)auStack_ac" identifier = (cast_expression "(int **)auStack_ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (binary_expression "(char)local_84[2] == '\0'" (cast_expression "(char)local_84[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_84[2]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_0009c8e6;" goto statement_identifier ;)) (expression_statement "local_28 = local_84;" (assignment_expression "local_28 = local_84" identifier = identifier) ;) (expression_statement "local_34 = param_3;" (assignment_expression "local_34 = param_3" identifier = identifier) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_30 = local_a4;" (assignment_expression "local_30 = local_a4" identifier = identifier) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "FUN_00099cc0(local_94,param_1 + 0x104,&local_34);" (call_expression "FUN_00099cc0(local_94,param_1 + 0x104,&local_34)" identifier (argument_list "(local_94,param_1 + 0x104,&local_34)" ( identifier , (binary_expression "param_1 + 0x104" identifier + number_literal) , (pointer_expression "&local_34" & identifier) ))) ;) }))) (expression_statement "ppiVar7 = &piStack_b0;" (assignment_expression "ppiVar7 = &piStack_b0" identifier = (pointer_expression "&piStack_b0" & identifier)) ;) (labeled_statement "LAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }" statement_identifier : (if_statement "if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }" if (parenthesized_expression "(local_64[0] != local_a0)" ( (binary_expression "local_64[0] != local_a0" (subscript_expression "local_64[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }" { (expression_statement "*(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];" (assignment_expression "*(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0]" (pointer_expression "*(undefined1 **)((int)ppiVar7 + -0x10)" * (cast_expression "(undefined1 **)((int)ppiVar7 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar7 + -0x10)" ( (binary_expression "(int)ppiVar7 + -0x10" (cast_expression "(int)ppiVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_64[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;" (assignment_expression "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902" (pointer_expression "*(undefined4 *)((int)ppiVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar7 + -0x14)" ( (binary_expression "(int)ppiVar7 + -0x14" (cast_expression "(int)ppiVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001807a0();" (call_expression "FUN_001807a0()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }" if (parenthesized_expression "(local_7c[0] != local_9c)" ( (binary_expression "local_7c[0] != local_9c" (subscript_expression "local_7c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }" { (expression_statement "*(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];" (assignment_expression "*(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0]" (pointer_expression "*(undefined1 **)((int)ppiVar7 + -0x10)" * (cast_expression "(undefined1 **)((int)ppiVar7 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar7 + -0x10)" ( (binary_expression "(int)ppiVar7 + -0x10" (cast_expression "(int)ppiVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "local_7c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;" (assignment_expression "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f" (pointer_expression "*(undefined4 *)((int)ppiVar7 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar7 + -0x14)" ( (binary_expression "(int)ppiVar7 + -0x14" (cast_expression "(int)ppiVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001807a0();" (call_expression "FUN_001807a0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar3 & uVar4;" return (binary_expression "uVar3 & uVar4" identifier & identifier) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence '))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence '))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return (binary_expression IDENT & IDENT) ;) })))
(function_definition "uint FUN_0009c7d0(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)\n\n{\n  byte *pbVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int **ppiVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  int *piStack_b0;\n  undefined1 auStack_ac [8];\n  int local_a4;\n  undefined1 *local_a0;\n  undefined1 *local_9c;\n  undefined **local_98;\n  undefined1 local_94 [16];\n  int *local_84;\n  int *local_80;\n  undefined1 *local_7c [2];\n  undefined1 local_74 [16];\n  undefined1 *local_64 [2];\n  undefined1 local_5c [16];\n  undefined4 local_4c;\n  int local_48;\n  undefined4 local_44;\n  int *local_40;\n  undefined4 local_3c;\n  undefined1 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  undefined4 local_24;\n  undefined1 local_20;\n  \n  local_98 = &__DT_PLTGOT;\n  iVar6 = 0x10;\n  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;\n  bVar10 = &stack0x00000000 == (undefined1 *)0xac;\n  pbVar8 = param_4;\n  pbVar1 = (byte *)".gnu.linkonce.t.";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);\n  local_a4 = *(int *)(*param_5 + 0x14);\n  if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }\n  ppiVar7 = (int **)auStack_ac;\n  local_9c = local_74;\n  pbVar1 = (byte *)0xffffffff;\n  local_7c[0] = local_9c;\n  if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }\n  piStack_b0 = (int *)0x0;\n  FUN_0004cf80(local_7c,pbVar8,pbVar1);\n  local_a0 = local_5c;\n  local_64[0] = local_a0;\n  sVar2 = strlen((char *)param_4);\n  piStack_b0 = (int *)0x0;\n                    \n  FUN_0004cf80(local_64,param_4,param_4 + sVar2);\n                    \n  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);\n  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);\n  if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }\n  ppiVar7 = &piStack_b0;\nLAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }\n  if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }\n  return uVar3 & uVar4;\n}" (type_identifier "uint") (function_declarator "FUN_0009c7d0(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)" (identifier "FUN_0009c7d0") (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  size_t sVar2;\n  uint uVar3;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int **ppiVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  int *piStack_b0;\n  undefined1 auStack_ac [8];\n  int local_a4;\n  undefined1 *local_a0;\n  undefined1 *local_9c;\n  undefined **local_98;\n  undefined1 local_94 [16];\n  int *local_84;\n  int *local_80;\n  undefined1 *local_7c [2];\n  undefined1 local_74 [16];\n  undefined1 *local_64 [2];\n  undefined1 local_5c [16];\n  undefined4 local_4c;\n  int local_48;\n  undefined4 local_44;\n  int *local_40;\n  undefined4 local_3c;\n  undefined1 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  undefined4 local_24;\n  undefined1 local_20;\n  \n  local_98 = &__DT_PLTGOT;\n  iVar6 = 0x10;\n  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;\n  bVar10 = &stack0x00000000 == (undefined1 *)0xac;\n  pbVar8 = param_4;\n  pbVar1 = (byte *)".gnu.linkonce.t.";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);\n  local_a4 = *(int *)(*param_5 + 0x14);\n  if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }\n  ppiVar7 = (int **)auStack_ac;\n  local_9c = local_74;\n  pbVar1 = (byte *)0xffffffff;\n  local_7c[0] = local_9c;\n  if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }\n  piStack_b0 = (int *)0x0;\n  FUN_0004cf80(local_7c,pbVar8,pbVar1);\n  local_a0 = local_5c;\n  local_64[0] = local_a0;\n  sVar2 = strlen((char *)param_4);\n  piStack_b0 = (int *)0x0;\n                    \n  FUN_0004cf80(local_64,param_4,param_4 + sVar2);\n                    \n  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);\n  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);\n  if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }\n  ppiVar7 = &piStack_b0;\nLAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }\n  if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }\n  return uVar3 & uVar4;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int **ppiVar7;" (primitive_type "int") (pointer_declarator "**ppiVar7" (* "*") (pointer_declarator "*ppiVar7" (* "*") (identifier "ppiVar7"))) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "bool bVar9;" (primitive_type "bool") (identifier "bVar9") (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "int *piStack_b0;" (primitive_type "int") (pointer_declarator "*piStack_b0" (* "*") (identifier "piStack_b0")) (; ";")) (declaration "undefined1 auStack_ac [8];" (type_identifier "undefined1") (array_declarator "auStack_ac [8]" (identifier "auStack_ac") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int local_a4;" (primitive_type "int") (identifier "local_a4") (; ";")) (declaration "undefined1 *local_a0;" (type_identifier "undefined1") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "undefined1 *local_9c;" (type_identifier "undefined1") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c")) (; ";")) (declaration "undefined **local_98;" (type_identifier "undefined") (pointer_declarator "**local_98" (* "*") (pointer_declarator "*local_98" (* "*") (identifier "local_98"))) (; ";")) (declaration "undefined1 local_94 [16];" (type_identifier "undefined1") (array_declarator "local_94 [16]" (identifier "local_94") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int *local_84;" (primitive_type "int") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "int *local_80;" (primitive_type "int") (pointer_declarator "*local_80" (* "*") (identifier "local_80")) (; ";")) (declaration "undefined1 *local_7c [2];" (type_identifier "undefined1") (pointer_declarator "*local_7c [2]" (* "*") (array_declarator "local_7c [2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_74 [16];" (type_identifier "undefined1") (array_declarator "local_74 [16]" (identifier "local_74") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_64 [2];" (type_identifier "undefined1") (pointer_declarator "*local_64 [2]" (* "*") (array_declarator "local_64 [2]" (identifier "local_64") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_5c [16];" (type_identifier "undefined1") (array_declarator "local_5c [16]" (identifier "local_5c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "int *local_40;" (primitive_type "int") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined1 local_38;" (type_identifier "undefined1") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "int *local_28;" (primitive_type "int") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined1 local_20;" (type_identifier "undefined1") (identifier "local_20") (; ";")) (expression_statement "local_98 = &__DT_PLTGOT;" (assignment_expression "local_98 = &__DT_PLTGOT" (identifier "local_98") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" (identifier "iVar6") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;" (assignment_expression "bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c" (identifier "bVar9") (= "=") (binary_expression "&stack0xfffffff0 < (undefined1 *)0x9c" (pointer_expression "&stack0xfffffff0" (& "&") (identifier "stack0xfffffff0")) (< "<") (cast_expression "(undefined1 *)0x9c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x9c")))) (; ";")) (expression_statement "bVar10 = &stack0x00000000 == (undefined1 *)0xac;" (assignment_expression "bVar10 = &stack0x00000000 == (undefined1 *)0xac" (identifier "bVar10") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0xac" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0xac" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xac")))) (; ";")) (expression_statement "pbVar8 = param_4;" (assignment_expression "pbVar8 = param_4" (identifier "pbVar8") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar1 = (byte *)".gnu.linkonce.t.";" (assignment_expression "pbVar1 = (byte *)".gnu.linkonce.t."" (identifier "pbVar1") (= "=") (cast_expression "(byte *)".gnu.linkonce.t."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".gnu.linkonce.t."" (" """) (string_content ".gnu.linkonce.t.") (" """)))) (; ";")) (do_statement "do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  } while (bVar10);" (do "do") (compound_statement "{\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    bVar9 = *pbVar8 < *pbVar1;\n    bVar10 = *pbVar8 == *pbVar1;\n    pbVar8 = pbVar8 + 1;\n    pbVar1 = pbVar1 + 1;\n  }" ({ "{") (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar9 = *pbVar8 < *pbVar1;" (assignment_expression "bVar9 = *pbVar8 < *pbVar1" (identifier "bVar9") (= "=") (binary_expression "*pbVar8 < *pbVar1" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (< "<") (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")))) (; ";")) (expression_statement "bVar10 = *pbVar8 == *pbVar1;" (assignment_expression "bVar10 = *pbVar8 == *pbVar1" (identifier "bVar10") (= "=") (binary_expression "*pbVar8 == *pbVar1" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (== "==") (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")))) (; ";")) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar1 = pbVar1 + 1;" (assignment_expression "pbVar1 = pbVar1 + 1" (identifier "pbVar1") (= "=") (binary_expression "pbVar1 + 1" (identifier "pbVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (expression_statement "local_a4 = *(int *)(*param_5 + 0x14);" (assignment_expression "local_a4 = *(int *)(*param_5 + 0x14)" (identifier "local_a4") (= "=") (pointer_expression "*(int *)(*param_5 + 0x14)" (* "*") (cast_expression "(int *)(*param_5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 0x14)" (( "(") (binary_expression "*param_5 + 0x14" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if ((!bVar9 && !bVar10) == bVar9) {\n    pbVar8 = param_4 + 0x10;\n  }\n  else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }" (if "if") (parenthesized_expression "((!bVar9 && !bVar10) == bVar9)" (( "(") (binary_expression "(!bVar9 && !bVar10) == bVar9" (parenthesized_expression "(!bVar9 && !bVar10)" (( "(") (binary_expression "!bVar9 && !bVar10" (unary_expression "!bVar9" (! "!") (identifier "bVar9")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (== "==") (identifier "bVar9")) () ")")) (compound_statement "{\n    pbVar8 = param_4 + 0x10;\n  }" ({ "{") (expression_statement "pbVar8 = param_4 + 0x10;" (assignment_expression "pbVar8 = param_4 + 0x10" (identifier "pbVar8") (= "=") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (else_clause "else {\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }" (else "else") (compound_statement "{\n    pcVar5 = strrchr((char *)param_4,0x2e);\n    pbVar8 = (byte *)(pcVar5 + 1);\n  }" ({ "{") (expression_statement "pcVar5 = strrchr((char *)param_4,0x2e);" (assignment_expression "pcVar5 = strrchr((char *)param_4,0x2e)" (identifier "pcVar5") (= "=") (call_expression "strrchr((char *)param_4,0x2e)" (identifier "strrchr") (argument_list "((char *)param_4,0x2e)" (( "(") (cast_expression "(char *)param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4")) (, ",") (number_literal "0x2e") () ")")))) (; ";")) (expression_statement "pbVar8 = (byte *)(pcVar5 + 1);" (assignment_expression "pbVar8 = (byte *)(pcVar5 + 1)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(pcVar5 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar5 + 1)" (( "(") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (expression_statement "ppiVar7 = (int **)auStack_ac;" (assignment_expression "ppiVar7 = (int **)auStack_ac" (identifier "ppiVar7") (= "=") (cast_expression "(int **)auStack_ac" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_ac"))) (; ";")) (expression_statement "local_9c = local_74;" (assignment_expression "local_9c = local_74" (identifier "local_9c") (= "=") (identifier "local_74")) (; ";")) (expression_statement "pbVar1 = (byte *)0xffffffff;" (assignment_expression "pbVar1 = (byte *)0xffffffff" (identifier "pbVar1") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_7c[0] = local_9c;" (assignment_expression "local_7c[0] = local_9c" (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_9c")) (; ";")) (if_statement "if (pbVar8 != (byte *)0x0) {\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }" (if "if") (parenthesized_expression "(pbVar8 != (byte *)0x0)" (( "(") (binary_expression "pbVar8 != (byte *)0x0" (identifier "pbVar8") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar2 = strlen((char *)pbVar8);\n    pbVar1 = pbVar8 + sVar2;\n  }" ({ "{") (expression_statement "sVar2 = strlen((char *)pbVar8);" (assignment_expression "sVar2 = strlen((char *)pbVar8)" (identifier "sVar2") (= "=") (call_expression "strlen((char *)pbVar8)" (identifier "strlen") (argument_list "((char *)pbVar8)" (( "(") (cast_expression "(char *)pbVar8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar8")) () ")")))) (; ";")) (expression_statement "pbVar1 = pbVar8 + sVar2;" (assignment_expression "pbVar1 = pbVar8 + sVar2" (identifier "pbVar1") (= "=") (binary_expression "pbVar8 + sVar2" (identifier "pbVar8") (+ "+") (identifier "sVar2"))) (; ";")) (} "}"))) (expression_statement "piStack_b0 = (int *)0x0;" (assignment_expression "piStack_b0 = (int *)0x0" (identifier "piStack_b0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0004cf80(local_7c,pbVar8,pbVar1);" (call_expression "FUN_0004cf80(local_7c,pbVar8,pbVar1)" (identifier "FUN_0004cf80") (argument_list "(local_7c,pbVar8,pbVar1)" (( "(") (identifier "local_7c") (, ",") (identifier "pbVar8") (, ",") (identifier "pbVar1") () ")"))) (; ";")) (expression_statement "local_a0 = local_5c;" (assignment_expression "local_a0 = local_5c" (identifier "local_a0") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_64[0] = local_a0;" (assignment_expression "local_64[0] = local_a0" (subscript_expression "local_64[0]" (identifier "local_64") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "sVar2 = strlen((char *)param_4);" (assignment_expression "sVar2 = strlen((char *)param_4)" (identifier "sVar2") (= "=") (call_expression "strlen((char *)param_4)" (identifier "strlen") (argument_list "((char *)param_4)" (( "(") (cast_expression "(char *)param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4")) () ")")))) (; ";")) (expression_statement "piStack_b0 = (int *)0x0;" (assignment_expression "piStack_b0 = (int *)0x0" (identifier "piStack_b0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0004cf80(local_64,param_4,param_4 + sVar2);" (call_expression "FUN_0004cf80(local_64,param_4,param_4 + sVar2)" (identifier "FUN_0004cf80") (argument_list "(local_64,param_4,param_4 + sVar2)" (( "(") (identifier "local_64") (, ",") (identifier "param_4") (, ",") (binary_expression "param_4 + sVar2" (identifier "param_4") (+ "+") (identifier "sVar2")) () ")"))) (; ";")) (expression_statement "uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);" (assignment_expression "uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84)" (identifier "uVar3") (= "=") (call_expression "FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84)" (identifier "FUN_00082ae0") (argument_list "(param_2,local_7c,param_1,param_3,0,0,&local_84)" (( "(") (identifier "param_2") (, ",") (identifier "local_7c") (, ",") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_84" (& "&") (identifier "local_84")) () ")")))) (; ";")) (expression_statement "uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);" (assignment_expression "uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80)" (identifier "uVar4") (= "=") (call_expression "FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80)" (identifier "FUN_00082ae0") (argument_list "(param_2,local_64,param_1,param_3,0,1,&local_80)" (( "(") (identifier "param_2") (, ",") (identifier "local_64") (, ",") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";")) (if_statement "if ((char)uVar4 == '\0') {\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }\n  else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }" (if "if") (parenthesized_expression "((char)uVar4 == '\0')" (( "(") (binary_expression "(char)uVar4 == '\0'" (cast_expression "(char)uVar4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar4")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;\n    local_40 = local_80;\n    local_44 = 0;\n    local_4c = param_3;\n    local_3c = 0;\n    local_48 = local_a4;\n    local_38 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);\n  }" ({ "{") (expression_statement "ppiVar7 = (int **)auStack_ac;" (assignment_expression "ppiVar7 = (int **)auStack_ac" (identifier "ppiVar7") (= "=") (cast_expression "(int **)auStack_ac" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_ac"))) (; ";")) (if_statement "if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))\n    goto LAB_0009c8e6;" (if "if") (parenthesized_expression "((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))" (( "(") (binary_expression "(*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0')" (parenthesized_expression "(*local_80 == 0)" (( "(") (binary_expression "*local_80 == 0" (pointer_expression "*local_80" (* "*") (identifier "local_80")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0')" (( "(") (comma_expression "ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'" (assignment_expression "ppiVar7 = (int **)auStack_ac" (identifier "ppiVar7") (= "=") (cast_expression "(int **)auStack_ac" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_ac"))) (, ",") (binary_expression "(char)local_80[2] != '\0'" (cast_expression "(char)local_80[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_80[2]" (identifier "local_80") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_0009c8e6;" (goto "goto") (statement_identifier "LAB_0009c8e6") (; ";"))) (expression_statement "local_40 = local_80;" (assignment_expression "local_40 = local_80" (identifier "local_40") (= "=") (identifier "local_80")) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = param_3;" (assignment_expression "local_4c = param_3" (identifier "local_4c") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = local_a4;" (assignment_expression "local_48 = local_a4" (identifier "local_48") (= "=") (identifier "local_a4")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);" (call_expression "FUN_00099cc0(local_94,param_1 + 0x104,&local_4c)" (identifier "FUN_00099cc0") (argument_list "(local_94,param_1 + 0x104,&local_4c)" (( "(") (identifier "local_94") (, ",") (binary_expression "param_1 + 0x104" (identifier "param_1") (+ "+") (number_literal "0x104")) (, ",") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }" (else "else") (compound_statement "{\n    if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }\n    ppiVar7 = (int **)auStack_ac;\n    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;\n    local_28 = local_84;\n    local_34 = param_3;\n    local_2c = 0;\n    local_30 = local_a4;\n    local_24 = 0;\n    local_20 = 0;\n    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);\n  }" ({ "{") (if_statement "if ((char)uVar3 != '\0') {\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }" (if "if") (parenthesized_expression "((char)uVar3 != '\0')" (( "(") (binary_expression "(char)uVar3 != '\0'" (cast_expression "(char)uVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar3")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_84[3] = local_a4;\n      local_84[4] = 0;\n      if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }\n      local_80[3] = local_a4;\n      local_80[4] = 0;\n      goto LAB_0009c8e6;\n    }" ({ "{") (if_statement "if ((char)local_84[2] != '\0') {\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" (if "if") (parenthesized_expression "((char)local_84[2] != '\0')" (( "(") (binary_expression "(char)local_84[2] != '\0'" (cast_expression "(char)local_84[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_84[2]" (identifier "local_84") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        piStack_b0 = local_84;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" ({ "{") (expression_statement "piStack_b0 = local_84;" (assignment_expression "piStack_b0 = local_84" (identifier "piStack_b0") (= "=") (identifier "local_84")) (; ";")) (expression_statement "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);" (call_expression "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8)" (identifier "FUN_0005f0b0") (argument_list "(local_98 + -0x38193,0x163,local_98 + -0x372f8)" (( "(") (binary_expression "local_98 + -0x38193" (identifier "local_98") (+ "+") (number_literal "-0x38193")) (, ",") (number_literal "0x163") (, ",") (binary_expression "local_98 + -0x372f8" (identifier "local_98") (+ "+") (number_literal "-0x372f8")) () ")"))) (; ";")) (} "}"))) (expression_statement "local_84[3] = local_a4;" (assignment_expression "local_84[3] = local_a4" (subscript_expression "local_84[3]" (identifier "local_84") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "local_84[4] = 0;" (assignment_expression "local_84[4] = 0" (subscript_expression "local_84[4]" (identifier "local_84") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((char)local_80[2] != '\0') {\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" (if "if") (parenthesized_expression "((char)local_80[2] != '\0')" (( "(") (binary_expression "(char)local_80[2] != '\0'" (cast_expression "(char)local_80[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_80[2]" (identifier "local_80") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        piStack_b0 = (int *)0x0;\n                    \n        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);\n      }" ({ "{") (expression_statement "piStack_b0 = (int *)0x0;" (assignment_expression "piStack_b0 = (int *)0x0" (identifier "piStack_b0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);" (call_expression "FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8)" (identifier "FUN_0005f0b0") (argument_list "(local_98 + -0x38193,0x163,local_98 + -0x372f8)" (( "(") (binary_expression "local_98 + -0x38193" (identifier "local_98") (+ "+") (number_literal "-0x38193")) (, ",") (number_literal "0x163") (, ",") (binary_expression "local_98 + -0x372f8" (identifier "local_98") (+ "+") (number_literal "-0x372f8")) () ")"))) (; ";")) (} "}"))) (expression_statement "local_80[3] = local_a4;" (assignment_expression "local_80[3] = local_a4" (subscript_expression "local_80[3]" (identifier "local_80") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "local_80[4] = 0;" (assignment_expression "local_80[4] = 0" (subscript_expression "local_80[4]" (identifier "local_80") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0009c8e6;" (goto "goto") (statement_identifier "LAB_0009c8e6") (; ";")) (} "}"))) (expression_statement "ppiVar7 = (int **)auStack_ac;" (assignment_expression "ppiVar7 = (int **)auStack_ac" (identifier "ppiVar7") (= "=") (cast_expression "(int **)auStack_ac" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_ac"))) (; ";")) (if_statement "if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))\n    goto LAB_0009c8e6;" (if "if") (parenthesized_expression "((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))" (( "(") (binary_expression "(*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0')" (parenthesized_expression "(*local_84 == 0)" (( "(") (binary_expression "*local_84 == 0" (pointer_expression "*local_84" (* "*") (identifier "local_84")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0')" (( "(") (comma_expression "ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'" (assignment_expression "ppiVar7 = (int **)auStack_ac" (identifier "ppiVar7") (= "=") (cast_expression "(int **)auStack_ac" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_ac"))) (, ",") (binary_expression "(char)local_84[2] == '\0'" (cast_expression "(char)local_84[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_84[2]" (identifier "local_84") ([ "[") (number_literal "2") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_0009c8e6;" (goto "goto") (statement_identifier "LAB_0009c8e6") (; ";"))) (expression_statement "local_28 = local_84;" (assignment_expression "local_28 = local_84" (identifier "local_28") (= "=") (identifier "local_84")) (; ";")) (expression_statement "local_34 = param_3;" (assignment_expression "local_34 = param_3" (identifier "local_34") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = local_a4;" (assignment_expression "local_30 = local_a4" (identifier "local_30") (= "=") (identifier "local_a4")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00099cc0(local_94,param_1 + 0x104,&local_34);" (call_expression "FUN_00099cc0(local_94,param_1 + 0x104,&local_34)" (identifier "FUN_00099cc0") (argument_list "(local_94,param_1 + 0x104,&local_34)" (( "(") (identifier "local_94") (, ",") (binary_expression "param_1 + 0x104" (identifier "param_1") (+ "+") (number_literal "0x104")) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (} "}")))) (expression_statement "ppiVar7 = &piStack_b0;" (assignment_expression "ppiVar7 = &piStack_b0" (identifier "ppiVar7") (= "=") (pointer_expression "&piStack_b0" (& "&") (identifier "piStack_b0"))) (; ";")) (labeled_statement "LAB_0009c8e6:\n  if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }" (statement_identifier "LAB_0009c8e6") (: ":") (if_statement "if (local_64[0] != local_a0) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }" (if "if") (parenthesized_expression "(local_64[0] != local_a0)" (( "(") (binary_expression "local_64[0] != local_a0" (subscript_expression "local_64[0]" (identifier "local_64") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_a0")) () ")")) (compound_statement "{\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;\n    FUN_001807a0();\n  }" ({ "{") (expression_statement "*(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];" (assignment_expression "*(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0]" (pointer_expression "*(undefined1 **)((int)ppiVar7 + -0x10)" (* "*") (cast_expression "(undefined1 **)((int)ppiVar7 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar7 + -0x10)" (( "(") (binary_expression "(int)ppiVar7 + -0x10" (cast_expression "(int)ppiVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_64[0]" (identifier "local_64") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;" (assignment_expression "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902" (pointer_expression "*(undefined4 *)((int)ppiVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar7 + -0x14)" (( "(") (binary_expression "(int)ppiVar7 + -0x14" (cast_expression "(int)ppiVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x9c902")) (; ";")) (expression_statement "FUN_001807a0();" (call_expression "FUN_001807a0()" (identifier "FUN_001807a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_7c[0] != local_9c) {\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }" (if "if") (parenthesized_expression "(local_7c[0] != local_9c)" (( "(") (binary_expression "local_7c[0] != local_9c" (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_9c")) () ")")) (compound_statement "{\n    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];\n    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;\n    FUN_001807a0();\n  }" ({ "{") (expression_statement "*(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];" (assignment_expression "*(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0]" (pointer_expression "*(undefined1 **)((int)ppiVar7 + -0x10)" (* "*") (cast_expression "(undefined1 **)((int)ppiVar7 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar7 + -0x10)" (( "(") (binary_expression "(int)ppiVar7 + -0x10" (cast_expression "(int)ppiVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar7")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;" (assignment_expression "*(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f" (pointer_expression "*(undefined4 *)((int)ppiVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar7 + -0x14)" (( "(") (binary_expression "(int)ppiVar7 + -0x14" (cast_expression "(int)ppiVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar7")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x9c91f")) (; ";")) (expression_statement "FUN_001807a0();" (call_expression "FUN_001807a0()" (identifier "FUN_001807a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return uVar3 & uVar4;" (return "return") (binary_expression "uVar3 & uVar4" (identifier "uVar3") (& "&") (identifier "uVar4")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: bool include_linkonce_section(Sized_relobj_file<32,_false> * this,
   Layout * layout, uint index, char * name, Shdr<32,_false> * shdr) */

bool __thiscall
gold::var_14<32,var_15>::include_linkonce_section
          (var_14<32,var_15> *this,Layout *layout,type_7 index,char *var_5,
          Shdr<32,var_15> *shdr)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::var_18<char>var_17>var_20
  *var_22;
  type_1 *pCVar2;
  char *pcVar3;
  size_t var_9;
  char *var_7;
  int var_1;
  type_2 *var_2;
  type_2 *var_3;
  bool var_4;
  bool var_23;
  type_3 *kept1;
  type_3 *kept2;
  type_4 sig1;
  type_4 sig2;
  type_5 local_4c [8];
  type_6 local_44;
  type_3 *local_40;
  type_7 local_3c;
  bool local_38;
  type_5 local_34 [8];
  type_6 local_2c;
  type_3 *local_28;
  type_7 local_24;
  bool local_20;
  
  var_1 = 0x10;
  var_4 = &stack0xfffffff0 < (type_5 *)0x9c;
  var_23 = &stack0x00000000 == (type_5 *)0xac;
  var_2 = (type_2 *)var_5;
  var_3 = (type_2 *)".gnu.linkonce.t.";
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_4 = *var_2 < *var_3;
    var_23 = *var_2 == *var_3;
    var_2 = var_2 + 1;
    var_3 = var_3 + 1;
  } while (var_23);
  pCVar2 = (type_1 *)shdr->p_->sh_size;
  if ((!var_4 && !var_23) == var_4) {
    var_7 = var_5 + 0x10;
  }
  else {
    var_7 = var_6(var_5,0x2e);
    var_7 = var_7 + 1;
  }
  var_22 = &sig1.field_2;
  pcVar3 = (char *)0xffffffff;
  sig1._M_dataplus._M_p = (type_8)var_22;
  if (var_7 != (char *)0x0) {
    var_9 = var_8(var_7);
    pcVar3 = var_7 + var_9;
  }
  std::__cxx11::basic_string<var_19,_std::char_traits<var_19>,_std::var_18<var_19>var_17>::
  var_10<var_11*>(&sig1,var_7,pcVar3,0);
  sig2._M_dataplus._M_p = (type_8)&sig2.field_2;
  var_9 = var_8(var_5);
                    /* try { // try from 0009c87f to 0009c883 has its CatchHandler @ 0009ca65 */
  std::__cxx11::basic_string<var_19,_std::char_traits<var_19>,_std::var_18<var_19>var_17>::
  var_10<var_11*>(&sig2,var_5,var_5 + var_9,0);
                    /* try { // try from 0009c89f to 0009ca60 has its CatchHandler @ 0009ca61 */
  var_4 = Layout::var_12(layout,&sig1,(type_9 *)this,index,false,false,&kept1);
  var_23 = Layout::var_12(layout,&sig2,(type_9 *)this,index,false,true,&kept2);
  if (var_23) {
    if (var_4) {
      if (kept1->is_comdat_ != false) {
                    /* WARNING: Subroutine does not return */
        var_13("../../gold/layout.h",0x163,"set_linkonce_size");
      }
      (kept1->u_).group_sections = pCVar2;
      *(type_6 *)((int)&kept1->u_ + 4) = 0;
      if (kept2->is_comdat_ != false) {
                    /* WARNING: Subroutine does not return */
        var_13("../../gold/layout.h",0x163,"set_linkonce_size");
      }
      (kept2->u_).group_sections = pCVar2;
      *(type_6 *)((int)&kept2->u_ + 4) = 0;
    }
    else if ((kept1->object_ != (type_9 *)0x0) && (kept1->is_comdat_ != false)) {
      local_28 = kept1;
      local_34._0_4_ = index;
      local_2c = 0;
      local_24 = 0;
      local_20 = false;
      local_34._4_4_ = pCVar2;
      std::
      _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::var_14<32,var_15>::var_16>,_std::_Select1st<std::pair<unsigned_int_const,_gold::var_14<32,var_15>::var_16>var_17>,_std::less<unsigned_int>,_std::var_18<std::pair<unsigned_int_const,_gold::var_14<32,var_15>::var_16>var_17>var_17>
      ::
      _M_emplace_unique<std::pair<unsigned_int,_gold::var_14<32,var_15>::var_16>var_17>
                (&(this->kept_comdat_sections_)._M_t,
                 (pair<unsigned_int,_gold::var_14<32,var_15>::var_16> *)
                 local_34);
    }
  }
  else if ((kept2->object_ != (type_9 *)0x0) && (kept2->is_comdat_ == false)) {
    local_40 = kept2;
    local_44 = 0;
    local_4c._0_4_ = index;
    local_3c = 0;
    local_38 = false;
    local_4c._4_4_ = pCVar2;
    std::
    _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::var_14<32,var_15>::var_16>,_std::_Select1st<std::pair<unsigned_int_const,_gold::var_14<32,var_15>::var_16>var_17>,_std::less<unsigned_int>,_std::var_18<std::pair<unsigned_int_const,_gold::var_14<32,var_15>::var_16>var_17>var_17>
    ::
    _M_emplace_unique<std::pair<unsigned_int,_gold::var_14<32,var_15>::var_16>var_17>
              (&(this->kept_comdat_sections_)._M_t,
               (pair<unsigned_int,_gold::var_14<32,var_15>::var_16> *)
               local_4c);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_19,_std::char_traits<var_19>,_std::var_18<var_19>var_17>var_20
       *)sig2._M_dataplus._M_p != &sig2.field_2) {
    var_21(sig2._M_dataplus._M_p);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_19,_std::char_traits<var_19>,_std::var_18<var_19>var_17>var_20
       *)sig1._M_dataplus._M_p != var_22) {
    var_21(sig1._M_dataplus._M_p);
  }
  return var_4 && var_23;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (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: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence))))))) consequence: (goto_statement label: (statement_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (binary_expression left: (identifier) right: (identifier))))))

/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

uint MASKED(int param_1,undefined4 param_2,undefined4 param_3,byte *param_4,int *param_5)

{
  byte *pbVar1;
  size_t sVar2;
  uint uVar3;
  uint uVar4;
  char *pcVar5;
  int iVar6;
  int **ppiVar7;
  byte *pbVar8;
  bool bVar9;
  bool bVar10;
  int *piStack_b0;
  undefined1 auStack_ac [8];
  int local_a4;
  undefined1 *local_a0;
  undefined1 *local_9c;
  undefined **local_98;
  undefined1 local_94 [16];
  int *local_84;
  int *local_80;
  undefined1 *local_7c [2];
  undefined1 local_74 [16];
  undefined1 *local_64 [2];
  undefined1 local_5c [16];
  undefined4 local_4c;
  int local_48;
  undefined4 local_44;
  int *local_40;
  undefined4 local_3c;
  undefined1 local_38;
  undefined4 local_34;
  int local_30;
  undefined4 local_2c;
  int *local_28;
  undefined4 local_24;
  undefined1 local_20;
  
  local_98 = &__DT_PLTGOT;
  iVar6 = 0x10;
  bVar9 = &stack0xfffffff0 < (undefined1 *)0x9c;
  bVar10 = &stack0x00000000 == (undefined1 *)0xac;
  pbVar8 = param_4;
  pbVar1 = (byte *)".gnu.linkonce.t.";
  do {
    if (iVar6 == 0) break;
    iVar6 = iVar6 + -1;
    bVar9 = *pbVar8 < *pbVar1;
    bVar10 = *pbVar8 == *pbVar1;
    pbVar8 = pbVar8 + 1;
    pbVar1 = pbVar1 + 1;
  } while (bVar10);
  local_a4 = *(int *)(*param_5 + 0x14);
  if ((!bVar9 && !bVar10) == bVar9) {
    pbVar8 = param_4 + 0x10;
  }
  else {
    pcVar5 = strrchr((char *)param_4,0x2e);
    pbVar8 = (byte *)(pcVar5 + 1);
  }
  ppiVar7 = (int **)auStack_ac;
  local_9c = local_74;
  pbVar1 = (byte *)0xffffffff;
  local_7c[0] = local_9c;
  if (pbVar8 != (byte *)0x0) {
    sVar2 = strlen((char *)pbVar8);
    pbVar1 = pbVar8 + sVar2;
  }
  piStack_b0 = (int *)0x0;
  FUN_0004cf80(local_7c,pbVar8,pbVar1);
  local_a0 = local_5c;
  local_64[0] = local_a0;
  sVar2 = strlen((char *)param_4);
  piStack_b0 = (int *)0x0;
                    /* try { // try from 0009c87f to 0009c883 has its CatchHandler @ 0009ca65 */
  FUN_0004cf80(local_64,param_4,param_4 + sVar2);
                    /* try { // try from 0009c89f to 0009ca60 has its CatchHandler @ 0009ca61 */
  uVar3 = FUN_00082ae0(param_2,local_7c,param_1,param_3,0,0,&local_84);
  uVar4 = FUN_00082ae0(param_2,local_64,param_1,param_3,0,1,&local_80);
  if ((char)uVar4 == '\0') {
    ppiVar7 = (int **)auStack_ac;
    if ((*local_80 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_80[2] != '\0'))
    goto LAB_0009c8e6;
    local_40 = local_80;
    local_44 = 0;
    local_4c = param_3;
    local_3c = 0;
    local_48 = local_a4;
    local_38 = 0;
    FUN_00099cc0(local_94,param_1 + 0x104,&local_4c);
  }
  else {
    if ((char)uVar3 != '\0') {
      if ((char)local_84[2] != '\0') {
        piStack_b0 = local_84;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);
      }
      local_84[3] = local_a4;
      local_84[4] = 0;
      if ((char)local_80[2] != '\0') {
        piStack_b0 = (int *)0x0;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0(local_98 + -0x38193,0x163,local_98 + -0x372f8);
      }
      local_80[3] = local_a4;
      local_80[4] = 0;
      goto LAB_0009c8e6;
    }
    ppiVar7 = (int **)auStack_ac;
    if ((*local_84 == 0) || (ppiVar7 = (int **)auStack_ac, (char)local_84[2] == '\0'))
    goto LAB_0009c8e6;
    local_28 = local_84;
    local_34 = param_3;
    local_2c = 0;
    local_30 = local_a4;
    local_24 = 0;
    local_20 = 0;
    FUN_00099cc0(local_94,param_1 + 0x104,&local_34);
  }
  ppiVar7 = &piStack_b0;
LAB_0009c8e6:
  if (local_64[0] != local_a0) {
    *(undefined1 **)((int)ppiVar7 + -0x10) = local_64[0];
    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c902;
    FUN_001807a0();
  }
  if (local_7c[0] != local_9c) {
    *(undefined1 **)((int)ppiVar7 + -0x10) = local_7c[0];
    *(undefined4 *)((int)ppiVar7 + -0x14) = 0x9c91f;
    FUN_001807a0();
  }
  return uVar3 & uVar4;
}

