
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void parse_section_start(General_options * this, char * param_1, char *
   arg, Command_line * param_3) */

void __thiscall
gold::General_options::parse_section_start
          (General_options *this,char *param_1,char *arg,Command_line *param_3)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  byte *pbVar2;
  byte bVar3;
  _Base_ptr p_Var4;
  uint uVar5;
  _Alloc_hider __s2;
  char cVar6;
  difference_type __d;
  char *pcVar7;
  _Rb_tree_header *p_Var8;
  int iVar9;
  _Base_ptr p_Var10;
  uint uVar11;
  byte *pbVar12;
  _Base_ptr p_Var13;
  pointer local_58;
  _Base_ptr local_54;
  _Base_ptr local_4c;
  _Base_ptr local_48;
  _Base_ptr local_40 [2];
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *local_38;
  string section_name;
  
  pcVar7 = strchr(arg,0x3d);
  if (pcVar7 == (char *)0x0) {
    pcVar7 = (char *)gettext("invalid argument to --section-start; must be SECTION=ADDRESS");
    gold_error(pcVar7);
    return;
  }
  paVar1 = &section_name.field_2;
  pbVar2 = (byte *)(pcVar7 + 1);
  section_name._M_dataplus._M_p = (pointer)paVar1;
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&section_name,arg,pcVar7,0);
  cVar6 = pcVar7[1];
  pbVar12 = pbVar2;
  if (cVar6 == '0') {
    if ((pcVar7[2] & 0xdfU) == 0x58) {
      pbVar12 = (byte *)(pcVar7 + 3);
      cVar6 = pcVar7[3];
      goto LAB_000e70cd;
    }
LAB_000e70d5:
                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */
    hex_init();
    __s2 = section_name._M_dataplus;
    if (*pbVar12 == 0) {
      local_4c = (_Base_ptr)0x0;
      local_48 = (_Base_ptr)0x0;
LAB_000e7142:
      p_Var4 = (this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;
      p_Var8 = &(this->section_starts_)._M_t._M_impl.super__Rb_tree_header;
      local_54 = &p_Var8->_M_header;
      if (p_Var4 == (_Base_ptr)0x0) {
LAB_000e72cd:
        local_38 = &section_name;
                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */
        std::
        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>
        ::
        _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>
                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>
                    *)local_40,(const_iterator)&this->section_starts_,
                   (piecewise_construct_t *)local_54,
                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>
                    *)&std::piecewise_construct,(tuple<> *)&local_38);
        local_54 = local_40[0];
        local_58 = section_name._M_dataplus._M_p;
      }
      else {
        local_58 = section_name._M_dataplus._M_p;
        do {
          while( true ) {
            p_Var13 = p_Var4;
            p_Var4 = p_Var13[1]._M_parent;
            p_Var10 = (_Base_ptr)section_name._M_string_length;
            if (p_Var4 <= section_name._M_string_length) {
              p_Var10 = p_Var4;
            }
            if ((p_Var10 == (_Base_ptr)0x0) ||
               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))
            {
              iVar9 = (int)p_Var4 - section_name._M_string_length;
            }
            if (iVar9 < 0) break;
            p_Var4 = p_Var13->_M_left;
            local_54 = p_Var13;
            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;
          }
          p_Var4 = p_Var13->_M_right;
        } while (p_Var13->_M_right != (_Base_ptr)0x0);
LAB_000e71b2:
        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;
        p_Var4 = local_54[1]._M_parent;
        p_Var10 = (_Base_ptr)section_name._M_string_length;
        if (p_Var4 < section_name._M_string_length) {
          p_Var10 = p_Var4;
        }
        if ((p_Var10 == (_Base_ptr)0x0) ||
           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {
          iVar9 = section_name._M_string_length - (int)p_Var4;
        }
        if (iVar9 < 0) goto LAB_000e72cd;
      }
      local_54[2]._M_left = local_4c;
      local_54[2]._M_right = local_48;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)local_58 == paVar1) {
        return;
      }
      goto LAB_000e723f;
    }
    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];
    if (bVar3 != 99) {
      local_4c = (_Base_ptr)0x0;
      local_48 = (_Base_ptr)0x0;
      do {
        uVar5 = (uint)local_4c >> 0x1c;
        uVar11 = (int)local_4c * 0x10;
        local_4c = (_Base_ptr)(uVar11 + bVar3);
        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));
        pbVar12 = pbVar12 + 1;
        if (*pbVar12 == 0) goto LAB_000e7142;
        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];
      } while (bVar3 != 99);
    }
    pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number");
    gold_error(pcVar7,pbVar2);
  }
  else {
LAB_000e70cd:
    if (cVar6 != '\0') goto LAB_000e70d5;
    pcVar7 = (char *)gettext("--section-start address missing");
    gold_error(pcVar7);
  }
  local_58 = section_name._M_dataplus._M_p;
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)section_name._M_dataplus._M_p == paVar1) {
    return;
  }
LAB_000e723f:
  operator_delete(local_58);
  return;
}



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

void FUN_000e7070(int param_1,undefined4 param_2,char *param_3)

{
  byte *pbVar1;
  byte bVar2;
  undefined **ppuVar3;
  uint uVar4;
  char cVar5;
  char *pcVar6;
  int iVar7;
  undefined **ppuVar8;
  undefined1 *puVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 *puVar12;
  byte *pbVar13;
  int iVar14;
  undefined4 uStack_70;
  undefined1 auStack_6c [8];
  int local_64;
  undefined1 **local_60;
  undefined1 *local_5c;
  undefined1 *local_58;
  int local_54;
  undefined **local_50;
  uint local_4c;
  int local_48;
  undefined **local_44;
  int local_40;
  undefined1 local_39;
  undefined1 **local_38;
  undefined1 *local_34;
  undefined **local_30;
  undefined1 local_2c [28];
  
  local_44 = &__DT_PLTGOT;
  pcVar6 = strchr(param_3,0x3d);
  if (pcVar6 == (char *)0x0) {
    uVar10 = gettext(local_44 + -0x3f6ef);
    FUN_000654b0(uVar10);
    return;
  }
  local_60 = &local_34;
  uStack_70 = 0;
  local_5c = local_2c;
  pbVar1 = (byte *)(pcVar6 + 1);
  local_34 = local_5c;
  FUN_00050e40(local_60,param_3,pcVar6);
  cVar5 = pcVar6[1];
  puVar12 = (undefined4 *)auStack_6c;
  pbVar13 = pbVar1;
  if (cVar5 == '0') {
    if ((pcVar6[2] & 0xdfU) == 0x58) {
      pbVar13 = (byte *)(pcVar6 + 3);
      cVar5 = pcVar6[3];
      goto LAB_000e70cd;
    }
LAB_000e70d5:
                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */
    uStack_70 = 0xe70dd;
    FUN_001e42c0();
    if (*pbVar13 == 0) {
      local_4c = 0;
      local_48 = 0;
LAB_000e7142:
      local_64 = param_1 + 0x5a5c;
      local_54 = local_64;
      if (*(int *)(param_1 + 0x5a60) == 0) {
LAB_000e72cd:
        local_38 = local_60;
                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */
        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);
        local_54 = local_40;
        puVar12 = &uStack_70;
        local_58 = local_34;
      }
      else {
        local_58 = local_34;
        local_50 = local_30;
        iVar7 = *(int *)(param_1 + 0x5a60);
        local_54 = local_64;
        do {
          while( true ) {
            iVar14 = iVar7;
            ppuVar3 = *(undefined ***)(iVar14 + 0x14);
            ppuVar8 = local_50;
            if (ppuVar3 <= local_50) {
              ppuVar8 = ppuVar3;
            }
            if ((ppuVar8 == (undefined **)0x0) ||
               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {
              iVar7 = (int)ppuVar3 - (int)local_50;
            }
            if (iVar7 < 0) break;
            iVar7 = *(int *)(iVar14 + 8);
            local_54 = iVar14;
            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;
          }
          iVar7 = *(int *)(iVar14 + 0xc);
        } while (*(int *)(iVar14 + 0xc) != 0);
LAB_000e71b2:
        if (local_64 == local_54) goto LAB_000e72cd;
        ppuVar3 = *(undefined ***)(local_54 + 0x14);
        ppuVar8 = local_50;
        if (ppuVar3 < local_50) {
          ppuVar8 = ppuVar3;
        }
        if ((ppuVar8 == (undefined **)0x0) ||
           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {
          iVar7 = (int)local_50 - (int)ppuVar3;
        }
        if (iVar7 < 0) goto LAB_000e72cd;
      }
      *(uint *)(local_54 + 0x28) = local_4c;
      *(int *)(local_54 + 0x2c) = local_48;
      puVar9 = local_58;
      if (local_58 == local_5c) {
        return;
      }
      goto LAB_000e723f;
    }
    local_50 = local_44 + -0x3b008;
    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);
    if (bVar2 != 99) {
      local_4c = 0;
      local_48 = 0;
      do {
        uVar4 = local_4c >> 0x1c;
        uVar11 = local_4c * 0x10;
        local_4c = uVar11 + bVar2;
        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);
        pbVar13 = pbVar13 + 1;
        if (*pbVar13 == 0) goto LAB_000e7142;
        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);
      } while (bVar2 != 99);
    }
    uVar10 = gettext(local_44 + -0x3f6d7);
    FUN_000654b0(uVar10,pbVar1);
  }
  else {
LAB_000e70cd:
    if (cVar5 != '\0') goto LAB_000e70d5;
    uVar10 = gettext(local_44 + -0x3f6df);
    FUN_000654b0(uVar10);
  }
  puVar12 = (undefined4 *)auStack_6c;
  puVar9 = local_34;
  if (local_34 == local_5c) {
    return;
  }
LAB_000e723f:
  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;
  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;
  FUN_001e6db0();
  return;
}


CALL 0x000559e6
ADD EAX,0x2a7f8b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
MOV EBX,EAX
SUB ESP,0x64
MOV ESI,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x40],EAX
PUSH 0x3d
PUSH ESI
CALL 0x000291d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000e72a0
MOV EBX,EAX
LEA EAX,[EBP + -0x30]
PUSH 0x0
LEA EDX,[EBP + -0x28]
PUSH EBX
LEA EDI,[EBX + 0x1]
PUSH ESI
MOV ESI,EDI
PUSH EAX
MOV dword ptr [EBP + -0x5c],EAX
MOV dword ptr [EBP + -0x58],EDX
MOV dword ptr [EBP + -0x30],EDX
CALL 0x00050e40
MOVZX EAX,byte ptr [EBX + 0x1]
ADD ESP,0x10
CMP AL,0x30
JZ 0x000e7280
TEST AL,AL
JZ 0x000e7218
MOV EBX,dword ptr [EBP + -0x40]
CALL 0x001e42c0
MOVZX EAX,byte ptr [ESI]
TEST AL,AL
JZ 0x000e7311
MOV EBX,dword ptr [EBP + -0x40]
LEA EBX,[EBX + 0xfff13fe0]
MOVZX EAX,byte ptr [EBX + EAX*0x1]
MOV dword ptr [EBP + -0x4c],EBX
CMP AL,0x63
JZ 0x000e7260
XOR ECX,ECX
XOR EBX,EBX
MOV dword ptr [EBP + -0x48],ECX
MOV dword ptr [EBP + -0x44],EBX
JMP 0x000e711f
MOV EDX,dword ptr [EBP + -0x4c]
MOVZX EAX,byte ptr [EDX + EAX*0x1]
CMP AL,0x63
JZ 0x000e7260
MOV ECX,dword ptr [EBP + -0x48]
MOV EBX,dword ptr [EBP + -0x44]
XOR EDX,EDX
SHLD EBX,ECX,0x4
SHL ECX,0x4
ADD ECX,EAX
ADC EBX,EDX
ADD ESI,0x1
MOVZX EAX,byte ptr [ESI]
MOV dword ptr [EBP + -0x48],ECX
MOV dword ptr [EBP + -0x44],EBX
TEST AL,AL
JNZ 0x000e7110
MOV EBX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBX + 0x5a60]
ADD EAX,0x5a5c
MOV dword ptr [EBP + -0x60],EAX
TEST ESI,ESI
JZ 0x000e72c7
MOV EBX,dword ptr [EBP + -0x2c]
MOV EDI,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x50],EAX
MOV dword ptr [EBP + -0x54],EDI
MOV dword ptr [EBP + -0x4c],EBX
JMP 0x000e717a
MOV dword ptr [EBP + -0x50],ESI
MOV ESI,dword ptr [ESI + 0x8]
TEST ESI,ESI
JZ 0x000e71b2
MOV EDI,dword ptr [ESI + 0x14]
MOV EAX,dword ptr [EBP + -0x4c]
CMP EDI,EAX
CMOVBE EAX,EDI
TEST EAX,EAX
JZ 0x000e71a2
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
PUSH dword ptr [EBP + -0x54]
PUSH dword ptr [ESI + 0x10]
CALL 0x00029130
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000e71a7
MOV EAX,EDI
SUB EAX,dword ptr [EBP + -0x4c]
TEST EAX,EAX
JNS 0x000e7170
MOV ESI,dword ptr [ESI + 0xc]
TEST ESI,ESI
JNZ 0x000e717a
MOV EAX,dword ptr [EBP + -0x4c]
MOV ECX,dword ptr [EBP + -0x50]
CMP dword ptr [EBP + -0x60],ECX
JZ 0x000e72cd
MOV ESI,dword ptr [ECX + 0x14]
CMP EAX,ESI
CMOVA EAX,ESI
TEST EAX,EAX
JZ 0x000e71e6
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
PUSH dword ptr [ECX + 0x10]
PUSH dword ptr [EBP + -0x54]
CALL 0x00029130
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000e71eb
MOV EAX,dword ptr [EBP + -0x4c]
SUB EAX,ESI
TEST EAX,EAX
JS 0x000e72cd
MOV EBX,dword ptr [EBP + -0x50]
MOV EAX,dword ptr [EBP + -0x48]
MOV EDX,dword ptr [EBP + -0x44]
MOV EDI,dword ptr [EBP + -0x58]
MOV dword ptr [EBX + 0x28],EAX
MOV EAX,dword ptr [EBP + -0x54]
MOV dword ptr [EBX + 0x2c],EDX
CMP EAX,EDI
JNZ 0x000e723f
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [EBP + -0x40]
SUB ESP,0xc
LEA EAX,[EDI + 0xfff02484]
MOV EBX,EDI
PUSH EAX
CALL 0x000293b0
MOV dword ptr [ESP],EAX
CALL 0x000654b0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x30]
CMP EAX,dword ptr [EBP + -0x58]
JZ 0x000e724e
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [EBP + -0x40]
SUB ESP,0xc
LEA EAX,[ESI + 0xfff024a4]
MOV EBX,ESI
PUSH EAX
CALL 0x000293b0
POP ECX
POP ESI
PUSH EDI
PUSH EAX
CALL 0x000654b0
JMP 0x000e7234
MOVZX EAX,byte ptr [EBX + 0x2]
AND EAX,0xffffffdf
CMP AL,0x58
JNZ 0x000e70d5
LEA ESI,[EBX + 0x3]
MOVZX EAX,byte ptr [EBX + 0x3]
JMP 0x000e70cd
MOV EDI,dword ptr [EBP + -0x40]
SUB ESP,0xc
LEA EAX,[EDI + 0xfff02444]
MOV EBX,EDI
PUSH EAX
CALL 0x000293b0
MOV dword ptr [ESP],EAX
CALL 0x000654b0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + -0x60]
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EBP + -0x5c]
SUB ESP,0x8
LEA EDX,[EBP + -0x3c]
MOV dword ptr [EBP + -0x34],EAX
LEA EAX,[EBP + -0x35]
PUSH EAX
LEA EAX,[EBP + -0x34]
PUSH EAX
MOV EAX,dword ptr [EBP + -0x40]
LEA EAX,[EAX + 0xfff02930]
PUSH EAX
MOV EAX,dword ptr [EBP + 0x8]
PUSH dword ptr [EBP + -0x50]
ADD EAX,0x5a58
PUSH EAX
PUSH EDX
CALL 0x000ebf30
MOV EAX,dword ptr [EBP + -0x3c]
ADD ESP,0x1c
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x54],EAX
JMP 0x000e71f3
MOV dword ptr [EBP + -0x48],0x0
MOV dword ptr [EBP + -0x44],0x0
JMP 0x000e7142
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000e7070(int param_1,undefined4 param_2,char *param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined **ppuVar3;\n  uint uVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined **ppuVar8;\n  undefined1 *puVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  int iVar14;\n  undefined4 uStack_70;\n  undefined1 auStack_6c [8];\n  int local_64;\n  undefined1 **local_60;\n  undefined1 *local_5c;\n  undefined1 *local_58;\n  int local_54;\n  undefined **local_50;\n  uint local_4c;\n  int local_48;\n  undefined **local_44;\n  int local_40;\n  undefined1 local_39;\n  undefined1 **local_38;\n  undefined1 *local_34;\n  undefined **local_30;\n  undefined1 local_2c [28];\n  \n  local_44 = &__DT_PLTGOT;\n  pcVar6 = strchr(param_3,0x3d);\n  if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }\n  local_60 = &local_34;\n  uStack_70 = 0;\n  local_5c = local_2c;\n  pbVar1 = (byte *)(pcVar6 + 1);\n  local_34 = local_5c;\n  FUN_00050e40(local_60,param_3,pcVar6);\n  cVar5 = pcVar6[1];\n  puVar12 = (undefined4 *)auStack_6c;\n  pbVar13 = pbVar1;\n  if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */\n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }\n  puVar12 = (undefined4 *)auStack_6c;\n  puVar9 = local_34;\n  if (local_34 == local_5c) {\n    return;\n  }\nLAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;\n  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;\n  FUN_001e6db0();\n  return;\n}\n\n" comment (function_definition "void FUN_000e7070(int param_1,undefined4 param_2,char *param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined **ppuVar3;\n  uint uVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined **ppuVar8;\n  undefined1 *puVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  int iVar14;\n  undefined4 uStack_70;\n  undefined1 auStack_6c [8];\n  int local_64;\n  undefined1 **local_60;\n  undefined1 *local_5c;\n  undefined1 *local_58;\n  int local_54;\n  undefined **local_50;\n  uint local_4c;\n  int local_48;\n  undefined **local_44;\n  int local_40;\n  undefined1 local_39;\n  undefined1 **local_38;\n  undefined1 *local_34;\n  undefined **local_30;\n  undefined1 local_2c [28];\n  \n  local_44 = &__DT_PLTGOT;\n  pcVar6 = strchr(param_3,0x3d);\n  if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }\n  local_60 = &local_34;\n  uStack_70 = 0;\n  local_5c = local_2c;\n  pbVar1 = (byte *)(pcVar6 + 1);\n  local_34 = local_5c;\n  FUN_00050e40(local_60,param_3,pcVar6);\n  cVar5 = pcVar6[1];\n  puVar12 = (undefined4 *)auStack_6c;\n  pbVar13 = pbVar1;\n  if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */\n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }\n  puVar12 = (undefined4 *)auStack_6c;\n  puVar9 = local_34;\n  if (local_34 == local_5c) {\n    return;\n  }\nLAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;\n  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;\n  FUN_001e6db0();\n  return;\n}" primitive_type (function_declarator "FUN_000e7070(int param_1,undefined4 param_2,char *param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,char *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  undefined **ppuVar3;\n  uint uVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined **ppuVar8;\n  undefined1 *puVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  int iVar14;\n  undefined4 uStack_70;\n  undefined1 auStack_6c [8];\n  int local_64;\n  undefined1 **local_60;\n  undefined1 *local_5c;\n  undefined1 *local_58;\n  int local_54;\n  undefined **local_50;\n  uint local_4c;\n  int local_48;\n  undefined **local_44;\n  int local_40;\n  undefined1 local_39;\n  undefined1 **local_38;\n  undefined1 *local_34;\n  undefined **local_30;\n  undefined1 local_2c [28];\n  \n  local_44 = &__DT_PLTGOT;\n  pcVar6 = strchr(param_3,0x3d);\n  if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }\n  local_60 = &local_34;\n  uStack_70 = 0;\n  local_5c = local_2c;\n  pbVar1 = (byte *)(pcVar6 + 1);\n  local_34 = local_5c;\n  FUN_00050e40(local_60,param_3,pcVar6);\n  cVar5 = pcVar6[1];\n  puVar12 = (undefined4 *)auStack_6c;\n  pbVar13 = pbVar1;\n  if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */\n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }\n  puVar12 = (undefined4 *)auStack_6c;\n  puVar9 = local_34;\n  if (local_34 == local_5c) {\n    return;\n  }\nLAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;\n  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;\n  FUN_001e6db0();\n  return;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined **ppuVar3;" type_identifier (pointer_declarator "**ppuVar3" * (pointer_declarator "*ppuVar3" * identifier)) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined1 auStack_6c [8];" type_identifier (array_declarator "auStack_6c [8]" identifier [ number_literal ]) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined1 **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "undefined1 *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "undefined1 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "undefined **local_50;" type_identifier (pointer_declarator "**local_50" * (pointer_declarator "*local_50" * identifier)) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "undefined **local_44;" type_identifier (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier)) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined1 local_39;" type_identifier identifier ;) (declaration "undefined1 **local_38;" type_identifier (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier)) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "local_44 = &__DT_PLTGOT;" (assignment_expression "local_44 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "pcVar6 = strchr(param_3,0x3d);" (assignment_expression "pcVar6 = strchr(param_3,0x3d)" identifier = (call_expression "strchr(param_3,0x3d)" identifier (argument_list "(param_3,0x3d)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }" { (expression_statement "uVar10 = gettext(local_44 + -0x3f6ef);" (assignment_expression "uVar10 = gettext(local_44 + -0x3f6ef)" identifier = (call_expression "gettext(local_44 + -0x3f6ef)" identifier (argument_list "(local_44 + -0x3f6ef)" ( (binary_expression "local_44 + -0x3f6ef" identifier + number_literal) )))) ;) (expression_statement "FUN_000654b0(uVar10);" (call_expression "FUN_000654b0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_60 = &local_34;" (assignment_expression "local_60 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" identifier = number_literal) ;) (expression_statement "local_5c = local_2c;" (assignment_expression "local_5c = local_2c" identifier = identifier) ;) (expression_statement "pbVar1 = (byte *)(pcVar6 + 1);" (assignment_expression "pbVar1 = (byte *)(pcVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "local_34 = local_5c;" (assignment_expression "local_34 = local_5c" identifier = identifier) ;) (expression_statement "FUN_00050e40(local_60,param_3,pcVar6);" (call_expression "FUN_00050e40(local_60,param_3,pcVar6)" identifier (argument_list "(local_60,param_3,pcVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "cVar5 = pcVar6[1];" (assignment_expression "cVar5 = pcVar6[1]" identifier = (subscript_expression "pcVar6[1]" identifier [ number_literal ])) ;) (expression_statement "puVar12 = (undefined4 *)auStack_6c;" (assignment_expression "puVar12 = (undefined4 *)auStack_6c" identifier = (cast_expression "(undefined4 *)auStack_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar13 = pbVar1;" (assignment_expression "pbVar13 = pbVar1" identifier = identifier) ;) (if_statement "if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */\n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }" if (parenthesized_expression "(cVar5 == '0')" ( (binary_expression "cVar5 == '0'" identifier == (char_literal "'0'" ' character ')) )) (compound_statement "{\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */\n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }" { (if_statement "if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }" if (parenthesized_expression "((pcVar6[2] & 0xdfU) == 0x58)" ( (binary_expression "(pcVar6[2] & 0xdfU) == 0x58" (parenthesized_expression "(pcVar6[2] & 0xdfU)" ( (binary_expression "pcVar6[2] & 0xdfU" (subscript_expression "pcVar6[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }" { (expression_statement "pbVar13 = (byte *)(pcVar6 + 3);" (assignment_expression "pbVar13 = (byte *)(pcVar6 + 3)" identifier = (cast_expression "(byte *)(pcVar6 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 3)" ( (binary_expression "pcVar6 + 3" identifier + number_literal) )))) ;) (expression_statement "cVar5 = pcVar6[3];" (assignment_expression "cVar5 = pcVar6[3]" identifier = (subscript_expression "pcVar6[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000e70cd;" goto statement_identifier ;) })) (labeled_statement "LAB_000e70d5:\n                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */\n    uStack_70 = 0xe70dd;" statement_identifier : comment (expression_statement "uStack_70 = 0xe70dd;" (assignment_expression "uStack_70 = 0xe70dd" identifier = number_literal) ;)) (expression_statement "FUN_001e42c0();" (call_expression "FUN_001e42c0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }" if (parenthesized_expression "(*pbVar13 == 0)" ( (binary_expression "*pbVar13 == 0" (pointer_expression "*pbVar13" * identifier) == number_literal) )) (compound_statement "{\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000e7142:\n      local_64 = param_1 + 0x5a5c;" statement_identifier : (expression_statement "local_64 = param_1 + 0x5a5c;" (assignment_expression "local_64 = param_1 + 0x5a5c" identifier = (binary_expression "param_1 + 0x5a5c" identifier + number_literal)) ;)) (expression_statement "local_54 = local_64;" (assignment_expression "local_54 = local_64" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x5a60) == 0)" ( (binary_expression "*(int *)(param_1 + 0x5a60) == 0" (pointer_expression "*(int *)(param_1 + 0x5a60)" * (cast_expression "(int *)(param_1 + 0x5a60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a60)" ( (binary_expression "param_1 + 0x5a60" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000e72cd:\n        local_38 = local_60;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }" { (labeled_statement "LAB_000e72cd:\n        local_38 = local_60;" statement_identifier : (expression_statement "local_38 = local_60;" (assignment_expression "local_38 = local_60" identifier = identifier) ;)) comment (expression_statement "FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);" (call_expression "FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39)" identifier (argument_list "(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39)" ( (pointer_expression "&local_40" & identifier) , (binary_expression "param_1 + 0x5a58" identifier + number_literal) , identifier , (binary_expression "local_44 + -0x3f5b4" identifier + number_literal) , (pointer_expression "&local_38" & identifier) , (pointer_expression "&local_39" & identifier) ))) ;) (expression_statement "local_54 = local_40;" (assignment_expression "local_54 = local_40" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_70;" (assignment_expression "puVar12 = &uStack_70" identifier = (pointer_expression "&uStack_70" & identifier)) ;) (expression_statement "local_58 = local_34;" (assignment_expression "local_58 = local_34" identifier = identifier) ;) }) (else_clause "else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }" else (compound_statement "{\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }" { (expression_statement "local_58 = local_34;" (assignment_expression "local_58 = local_34" identifier = identifier) ;) (expression_statement "local_50 = local_30;" (assignment_expression "local_50 = local_30" identifier = identifier) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x5a60);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x5a60)" identifier = (pointer_expression "*(int *)(param_1 + 0x5a60)" * (cast_expression "(int *)(param_1 + 0x5a60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a60)" ( (binary_expression "param_1 + 0x5a60" identifier + number_literal) ))))) ;) (expression_statement "local_54 = local_64;" (assignment_expression "local_54 = local_64" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);" do (compound_statement "{\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        }" { (while_statement "while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }" { (expression_statement "iVar14 = iVar7;" (assignment_expression "iVar14 = iVar7" identifier = identifier) ;) (expression_statement "ppuVar3 = *(undefined ***)(iVar14 + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(iVar14 + 0x14)" identifier = (pointer_expression "*(undefined ***)(iVar14 + 0x14)" * (cast_expression "(undefined ***)(iVar14 + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "ppuVar8 = local_50;" (assignment_expression "ppuVar8 = local_50" identifier = identifier) ;) (if_statement "if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }" if (parenthesized_expression "(ppuVar3 <= local_50)" ( (binary_expression "ppuVar3 <= local_50" identifier <= identifier) )) (compound_statement "{\n              ppuVar8 = ppuVar3;\n            }" { (expression_statement "ppuVar8 = ppuVar3;" (assignment_expression "ppuVar8 = ppuVar3" identifier = identifier) ;) })) (if_statement "if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }" if (parenthesized_expression "((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0))" ( (binary_expression "(ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)" (parenthesized_expression "(ppuVar8 == (undefined **)0x0)" ( (binary_expression "ppuVar8 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)" ( (comma_expression "iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0" (assignment_expression "iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8)" identifier = (call_expression "memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8)" identifier (argument_list "(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8)" ( (pointer_expression "*(void **)(iVar14 + 0x10)" * (cast_expression "(void **)(iVar14 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) , identifier , (cast_expression "(size_t)ppuVar8" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }" { (expression_statement "iVar7 = (int)ppuVar3 - (int)local_50;" (assignment_expression "iVar7 = (int)ppuVar3 - (int)local_50" identifier = (binary_expression "(int)ppuVar3 - (int)local_50" (cast_expression "(int)ppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (if_statement "if (iVar7 < 0) break;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = *(int *)(iVar14 + 8);" (assignment_expression "iVar7 = *(int *)(iVar14 + 8)" identifier = (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54 = iVar14;" (assignment_expression "local_54 = iVar14" identifier = identifier) ;) (if_statement "if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;" if (parenthesized_expression "(*(int *)(iVar14 + 8) == 0)" ( (binary_expression "*(int *)(iVar14 + 8) == 0" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000e71b2;" goto statement_identifier ;)) })) (expression_statement "iVar7 = *(int *)(iVar14 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar14 + 0xc)" identifier = (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(int *)(iVar14 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar14 + 0xc) != 0" (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;" statement_identifier : (if_statement "if (local_64 == local_54) goto LAB_000e72cd;" if (parenthesized_expression "(local_64 == local_54)" ( (binary_expression "local_64 == local_54" identifier == identifier) )) (goto_statement "goto LAB_000e72cd;" goto statement_identifier ;))) (expression_statement "ppuVar3 = *(undefined ***)(local_54 + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(local_54 + 0x14)" identifier = (pointer_expression "*(undefined ***)(local_54 + 0x14)" * (cast_expression "(undefined ***)(local_54 + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(local_54 + 0x14)" ( (binary_expression "local_54 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "ppuVar8 = local_50;" (assignment_expression "ppuVar8 = local_50" identifier = identifier) ;) (if_statement "if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }" if (parenthesized_expression "(ppuVar3 < local_50)" ( (binary_expression "ppuVar3 < local_50" identifier < identifier) )) (compound_statement "{\n          ppuVar8 = ppuVar3;\n        }" { (expression_statement "ppuVar8 = ppuVar3;" (assignment_expression "ppuVar8 = ppuVar3" identifier = identifier) ;) })) (if_statement "if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }" if (parenthesized_expression "((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0))" ( (binary_expression "(ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)" (parenthesized_expression "(ppuVar8 == (undefined **)0x0)" ( (binary_expression "ppuVar8 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)" ( (comma_expression "iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0" (assignment_expression "iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8)" identifier = (call_expression "memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8)" identifier (argument_list "(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8)" ( identifier , (pointer_expression "*(void **)(local_54 + 0x10)" * (cast_expression "(void **)(local_54 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_54 + 0x10)" ( (binary_expression "local_54 + 0x10" identifier + number_literal) )))) , (cast_expression "(size_t)ppuVar8" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }" { (expression_statement "iVar7 = (int)local_50 - (int)ppuVar3;" (assignment_expression "iVar7 = (int)local_50 - (int)ppuVar3" identifier = (binary_expression "(int)local_50 - (int)ppuVar3" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppuVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (if_statement "if (iVar7 < 0) goto LAB_000e72cd;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto LAB_000e72cd;" goto statement_identifier ;)) }))) (expression_statement "*(uint *)(local_54 + 0x28) = local_4c;" (assignment_expression "*(uint *)(local_54 + 0x28) = local_4c" (pointer_expression "*(uint *)(local_54 + 0x28)" * (cast_expression "(uint *)(local_54 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x28)" ( (binary_expression "local_54 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(local_54 + 0x2c) = local_48;" (assignment_expression "*(int *)(local_54 + 0x2c) = local_48" (pointer_expression "*(int *)(local_54 + 0x2c)" * (cast_expression "(int *)(local_54 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x2c)" ( (binary_expression "local_54 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar9 = local_58;" (assignment_expression "puVar9 = local_58" identifier = identifier) ;) (if_statement "if (local_58 == local_5c) {\n        return;\n      }" if (parenthesized_expression "(local_58 == local_5c)" ( (binary_expression "local_58 == local_5c" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_000e723f;" goto statement_identifier ;) })) (expression_statement "local_50 = local_44 + -0x3b008;" (assignment_expression "local_50 = local_44 + -0x3b008" identifier = (binary_expression "local_44 + -0x3b008" identifier + number_literal)) ;) (expression_statement "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);" (assignment_expression "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13)" identifier = (pointer_expression "*(byte *)((int)local_50 + (uint)*pbVar13)" * (cast_expression "(byte *)((int)local_50 + (uint)*pbVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + (uint)*pbVar13)" ( (binary_expression "(int)local_50 + (uint)*pbVar13" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) (if_statement "if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }" if (parenthesized_expression "(bVar2 != 99)" ( (binary_expression "bVar2 != 99" identifier != number_literal) )) (compound_statement "{\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);" do (compound_statement "{\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      }" { (expression_statement "uVar4 = local_4c >> 0x1c;" (assignment_expression "uVar4 = local_4c >> 0x1c" identifier = (binary_expression "local_4c >> 0x1c" identifier >> number_literal)) ;) (expression_statement "uVar11 = local_4c * 0x10;" (assignment_expression "uVar11 = local_4c * 0x10" identifier = (binary_expression "local_4c * 0x10" identifier * number_literal)) ;) (expression_statement "local_4c = uVar11 + bVar2;" (assignment_expression "local_4c = uVar11 + bVar2" identifier = (binary_expression "uVar11 + bVar2" identifier + identifier)) ;) (expression_statement "local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);" (assignment_expression "local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2)" identifier = (binary_expression "(local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2)" (parenthesized_expression "(local_48 << 4 | uVar4)" ( (binary_expression "local_48 << 4 | uVar4" (binary_expression "local_48 << 4" identifier << number_literal) | identifier) )) + (cast_expression "(uint)CARRY4(uVar11,(uint)bVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar11,(uint)bVar2)" identifier (argument_list "(uVar11,(uint)bVar2)" ( identifier , (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (if_statement "if (*pbVar13 == 0) goto LAB_000e7142;" if (parenthesized_expression "(*pbVar13 == 0)" ( (binary_expression "*pbVar13 == 0" (pointer_expression "*pbVar13" * identifier) == number_literal) )) (goto_statement "goto LAB_000e7142;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);" (assignment_expression "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13)" identifier = (pointer_expression "*(byte *)((int)local_50 + (uint)*pbVar13)" * (cast_expression "(byte *)((int)local_50 + (uint)*pbVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + (uint)*pbVar13)" ( (binary_expression "(int)local_50 + (uint)*pbVar13" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) }) while (parenthesized_expression "(bVar2 != 99)" ( (binary_expression "bVar2 != 99" identifier != number_literal) )) ;) })) (expression_statement "uVar10 = gettext(local_44 + -0x3f6d7);" (assignment_expression "uVar10 = gettext(local_44 + -0x3f6d7)" identifier = (call_expression "gettext(local_44 + -0x3f6d7)" identifier (argument_list "(local_44 + -0x3f6d7)" ( (binary_expression "local_44 + -0x3f6d7" identifier + number_literal) )))) ;) (expression_statement "FUN_000654b0(uVar10,pbVar1);" (call_expression "FUN_000654b0(uVar10,pbVar1)" identifier (argument_list "(uVar10,pbVar1)" ( identifier , identifier ))) ;) }) (else_clause "else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }" else (compound_statement "{\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }" { (labeled_statement "LAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;" statement_identifier : (if_statement "if (cVar5 != '\0') goto LAB_000e70d5;" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e70d5;" goto statement_identifier ;))) (expression_statement "uVar10 = gettext(local_44 + -0x3f6df);" (assignment_expression "uVar10 = gettext(local_44 + -0x3f6df)" identifier = (call_expression "gettext(local_44 + -0x3f6df)" identifier (argument_list "(local_44 + -0x3f6df)" ( (binary_expression "local_44 + -0x3f6df" identifier + number_literal) )))) ;) (expression_statement "FUN_000654b0(uVar10);" (call_expression "FUN_000654b0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) }))) (expression_statement "puVar12 = (undefined4 *)auStack_6c;" (assignment_expression "puVar12 = (undefined4 *)auStack_6c" identifier = (cast_expression "(undefined4 *)auStack_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" identifier = identifier) ;) (if_statement "if (local_34 == local_5c) {\n    return;\n  }" if (parenthesized_expression "(local_34 == local_5c)" ( (binary_expression "local_34 == local_5c" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;" statement_identifier : (expression_statement "*(undefined1 **)((int)puVar12 + -0x10) = puVar9;" (assignment_expression "*(undefined1 **)((int)puVar12 + -0x10) = puVar9" (pointer_expression "*(undefined1 **)((int)puVar12 + -0x10)" * (cast_expression "(undefined1 **)((int)puVar12 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar12 + -0x10)" ( (binary_expression "(int)puVar12 + -0x10" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;" (assignment_expression "*(undefined4 *)((int)puVar12 + -0x14) = 0xe724b" (pointer_expression "*(undefined4 *)((int)puVar12 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + -0x14)" ( (binary_expression "(int)puVar12 + -0x14" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void parse_section_start(General_options * this, char * param_1, char *\n   arg, Command_line * param_3) */\n\nvoid __thiscall\ngold::General_options::parse_section_start\n          (General_options *this,char *param_1,char *arg,Command_line *param_3)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  byte *pbVar2;\n  byte bVar3;\n  _Base_ptr p_Var4;\n  uint uVar5;\n  _Alloc_hider __s2;\n  char cVar6;\n  difference_type __d;\n  char *pcVar7;\n  _Rb_tree_header *p_Var8;\n  int iVar9;\n  _Base_ptr p_Var10;\n  uint uVar11;\n  byte *pbVar12;\n  _Base_ptr p_Var13;\n  pointer local_58;\n  _Base_ptr local_54;\n  _Base_ptr local_4c;\n  _Base_ptr local_48;\n  _Base_ptr local_40 [2];\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *local_38;\n  string section_name;\n  \n  pcVar7 = strchr(arg,0x3d);\n  if (pcVar7 == (char *)0x0) {\n    pcVar7 = (char *)gettext("invalid argument to --section-start; must be SECTION=ADDRESS");\n    gold_error(pcVar7);\n    return;\n  }\n  paVar1 = &section_name.field_2;\n  pbVar2 = (byte *)(pcVar7 + 1);\n  section_name._M_dataplus._M_p = (pointer)paVar1;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&section_name,arg,pcVar7,0);\n  cVar6 = pcVar7[1];\n  pbVar12 = pbVar2;\n  if (cVar6 == '0') {\n    if ((pcVar7[2] & 0xdfU) == 0x58) {\n      pbVar12 = (byte *)(pcVar7 + 3);\n      cVar6 = pcVar7[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */\n    hex_init();\n    __s2 = section_name._M_dataplus;\n    if (*pbVar12 == 0) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\nLAB_000e7142:\n      p_Var4 = (this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n      p_Var8 = &(this->section_starts_)._M_t._M_impl.super__Rb_tree_header;\n      local_54 = &p_Var8->_M_header;\n      if (p_Var4 == (_Base_ptr)0x0) {\nLAB_000e72cd:\n        local_38 = &section_name;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        std::\n        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n        ::\n        _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n    if (bVar3 != 99) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\n      do {\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      } while (bVar3 != 99);\n    }\n    pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number");\n    gold_error(pcVar7,pbVar2);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar6 != '\0') goto LAB_000e70d5;\n    pcVar7 = (char *)gettext("--section-start address missing");\n    gold_error(pcVar7);\n  }\n  local_58 = section_name._M_dataplus._M_p;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)section_name._M_dataplus._M_p == paVar1) {\n    return;\n  }\nLAB_000e723f:\n  operator_delete(local_58);\n  return;\n}\n\n" comment comment comment comment (ERROR "void __thiscall\ngold::General_options::parse_section_start\n          (General_options *this,char *param_1,char *arg,Command_line *param_3)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  byte *pbVar2;\n  byte bVar3;\n  _Base_ptr p_Var4;\n  uint uVar5;\n  _Alloc_hider __s2;\n  char cVar6;\n  difference_type __d;\n  char *pcVar7;\n  _Rb_tree_header *p_Var8;\n  int iVar9;\n  _Base_ptr p_Var10;\n  uint uVar11;\n  byte *pbVar12;\n  _Base_ptr p_Var13;\n  pointer local_58;\n  _Base_ptr local_54;\n  _Base_ptr local_4c;\n  _Base_ptr local_48;\n  _Base_ptr local_40 [2];\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *local_38;\n  string section_name;\n  \n  pcVar7 = strchr(arg,0x3d);\n  if (pcVar7 == (char *)0x0) {\n    pcVar7 = (char *)gettext("invalid argument to --section-start; must be SECTION=ADDRESS");\n    gold_error(pcVar7);\n    return;\n  }\n  paVar1 = &section_name.field_2;\n  pbVar2 = (byte *)(pcVar7 + 1);\n  section_name._M_dataplus._M_p = (pointer)paVar1;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&section_name,arg,pcVar7,0);\n  cVar6 = pcVar7[1];\n  pbVar12 = pbVar2;\n  if (cVar6 == '0') {\n    if ((pcVar7[2] & 0xdfU) == 0x58) {\n      pbVar12 = (byte *)(pcVar7 + 3);\n      cVar6 = pcVar7[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */\n    hex_init();\n    __s2 = section_name._M_dataplus;\n    if (*pbVar12 == 0) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\nLAB_000e7142:\n      p_Var4 = (this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n      p_Var8 = &(this->section_starts_)._M_t._M_impl.super__Rb_tree_header;\n      local_54 = &p_Var8->_M_header;\n      if (p_Var4 == (_Base_ptr)0x0) {\nLAB_000e72cd:\n        local_38 = &section_name;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        std::\n        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n        ::\n        _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n    if (bVar3 != 99) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\n      do {\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      } while (bVar3 != 99);\n    }\n    pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number");\n    gold_error(pcVar7,pbVar2);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar6 != '\0') goto LAB_000e70d5;\n    pcVar7 = (char *)gettext("--section-start address missing");\n    gold_error(pcVar7);\n  }\n  local_58 = section_name._M_dataplus._M_p;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)section_name._M_dataplus._M_p == paVar1) {\n    return;\n  }\nLAB_000e723f:\n  operator_delete(local_58);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::General_options::" identifier : : identifier : :) (function_declarator "parse_section_start\n          (General_options *this,char *param_1,char *arg,Command_line *param_3)" identifier (parameter_list "(General_options *this,char *param_1,char *arg,Command_line *param_3)" ( (parameter_declaration "General_options *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *arg" primitive_type (pointer_declarator "*arg" * identifier)) , (parameter_declaration "Command_line *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) { (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "_Base_ptr p_Var4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "_Alloc_hider __s2;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "difference_type __d;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "_Rb_tree_header *p_Var8;" type_identifier (pointer_declarator "*p_Var8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "_Base_ptr p_Var10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "_Base_ptr p_Var13;" type_identifier identifier ;) (declaration "pointer local_58;" type_identifier identifier ;) (declaration "_Base_ptr local_54;" type_identifier identifier ;) (declaration "_Base_ptr local_4c;" type_identifier identifier ;) (declaration "_Base_ptr local_48;" type_identifier identifier ;) (declaration "_Base_ptr local_40 [2];" type_identifier (array_declarator "local_40 [2]" identifier [ number_literal ]) ;) (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_> *local_38;" (binary_expression "allocator<char>_> *local_38" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*local_38" * identifier)) ;) (declaration "string section_name;" type_identifier identifier ;) (expression_statement "pcVar7 = strchr(arg,0x3d);" (assignment_expression "pcVar7 = strchr(arg,0x3d)" identifier = (call_expression "strchr(arg,0x3d)" identifier (argument_list "(arg,0x3d)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n    pcVar7 = (char *)gettext("invalid argument to --section-start; must be SECTION=ADDRESS");\n    gold_error(pcVar7);\n    return;\n  }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar7 = (char *)gettext("invalid argument to --section-start; must be SECTION=ADDRESS");\n    gold_error(pcVar7);\n    return;\n  }" { (expression_statement "pcVar7 = (char *)gettext("invalid argument to --section-start; must be SECTION=ADDRESS");" (assignment_expression "pcVar7 = (char *)gettext("invalid argument to --section-start; must be SECTION=ADDRESS")" identifier = (cast_expression "(char *)gettext("invalid argument to --section-start; must be SECTION=ADDRESS")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("invalid argument to --section-start; must be SECTION=ADDRESS")" identifier (argument_list "("invalid argument to --section-start; must be SECTION=ADDRESS")" ( (string_literal ""invalid argument to --section-start; must be SECTION=ADDRESS"" " string_content ") ))))) ;) (expression_statement "gold_error(pcVar7);" (call_expression "gold_error(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "paVar1 = &section_name.field_2;" (assignment_expression "paVar1 = &section_name.field_2" identifier = (pointer_expression "&section_name.field_2" & (field_expression "section_name.field_2" identifier . field_identifier))) ;) (expression_statement "pbVar2 = (byte *)(pcVar7 + 1);" (assignment_expression "pbVar2 = (byte *)(pcVar7 + 1)" identifier = (cast_expression "(byte *)(pcVar7 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "section_name._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "section_name._M_dataplus._M_p = (pointer)paVar1" (field_expression "section_name._M_dataplus._M_p" (field_expression "section_name._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&section_name,arg,pcVar7,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*>(&section_name,arg,pcVar7,0);" (binary_expression "_M_construct<char_const*>(&section_name,arg,pcVar7,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&section_name,arg,pcVar7,0)" ( (comma_expression "&section_name,arg,pcVar7,0" (pointer_expression "&section_name" & identifier) , (comma_expression "arg,pcVar7,0" identifier , (comma_expression "pcVar7,0" identifier , number_literal))) ))) ;)) (expression_statement "cVar6 = pcVar7[1];" (assignment_expression "cVar6 = pcVar7[1]" identifier = (subscript_expression "pcVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar12 = pbVar2;" (assignment_expression "pbVar12 = pbVar2" identifier = identifier) ;) if (parenthesized_expression "(cVar6 == '0')" ( (binary_expression "cVar6 == '0'" identifier == (char_literal "'0'" ' character ')) )) { (if_statement "if ((pcVar7[2] & 0xdfU) == 0x58) {\n      pbVar12 = (byte *)(pcVar7 + 3);\n      cVar6 = pcVar7[3];\n      goto LAB_000e70cd;\n    }" if (parenthesized_expression "((pcVar7[2] & 0xdfU) == 0x58)" ( (binary_expression "(pcVar7[2] & 0xdfU) == 0x58" (parenthesized_expression "(pcVar7[2] & 0xdfU)" ( (binary_expression "pcVar7[2] & 0xdfU" (subscript_expression "pcVar7[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      pbVar12 = (byte *)(pcVar7 + 3);\n      cVar6 = pcVar7[3];\n      goto LAB_000e70cd;\n    }" { (expression_statement "pbVar12 = (byte *)(pcVar7 + 3);" (assignment_expression "pbVar12 = (byte *)(pcVar7 + 3)" identifier = (cast_expression "(byte *)(pcVar7 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 3)" ( (binary_expression "pcVar7 + 3" identifier + number_literal) )))) ;) (expression_statement "cVar6 = pcVar7[3];" (assignment_expression "cVar6 = pcVar7[3]" identifier = (subscript_expression "pcVar7[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000e70cd;" goto statement_identifier ;) })) (labeled_statement "LAB_000e70d5:\n                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */\n    hex_init();" statement_identifier : comment (expression_statement "hex_init();" (call_expression "hex_init()" identifier (argument_list "()" ( ))) ;)) (expression_statement "__s2 = section_name._M_dataplus;" (assignment_expression "__s2 = section_name._M_dataplus" identifier = (field_expression "section_name._M_dataplus" identifier . field_identifier)) ;) (if_statement "if (*pbVar12 == 0) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\nLAB_000e7142:\n      p_Var4 = (this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n      p_Var8 = &(this->section_starts_)._M_t._M_impl.super__Rb_tree_header;\n      local_54 = &p_Var8->_M_header;\n      if (p_Var4 == (_Base_ptr)0x0) {\nLAB_000e72cd:\n        local_38 = &section_name;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        std::\n        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n        ::\n        _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n    if (bVar3 != 99) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\n      do {\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      } while (bVar3 != 99);\n    }\n    pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number");\n    gold_error(pcVar7,pbVar2);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar6 != '\0') goto LAB_000e70d5;\n    pcVar7 = (char *)gettext("--section-start address missing");\n    gold_error(pcVar7);\n  }\n  local_58 = section_name._M_dataplus._M_p;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)section_name._M_dataplus._M_p == paVar1) {\n    return;\n  }\nLAB_000e723f:\n  operator_delete(local_58);\n  return;\n}" if (parenthesized_expression "(*pbVar12 == 0)" ( (binary_expression "*pbVar12 == 0" (pointer_expression "*pbVar12" * identifier) == number_literal) )) (compound_statement "{\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\nLAB_000e7142:\n      p_Var4 = (this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n      p_Var8 = &(this->section_starts_)._M_t._M_impl.super__Rb_tree_header;\n      local_54 = &p_Var8->_M_header;\n      if (p_Var4 == (_Base_ptr)0x0) {\nLAB_000e72cd:\n        local_38 = &section_name;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        std::\n        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n        ::\n        _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n    if (bVar3 != 99) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\n      do {\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      } while (bVar3 != 99);\n    }\n    pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number");\n    gold_error(pcVar7,pbVar2);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar6 != '\0') goto LAB_000e70d5;\n    pcVar7 = (char *)gettext("--section-start address missing");\n    gold_error(pcVar7);\n  }\n  local_58 = section_name._M_dataplus._M_p;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)section_name._M_dataplus._M_p == paVar1) {\n    return;\n  }\nLAB_000e723f:\n  operator_delete(local_58);\n  return;\n}" { (expression_statement "local_4c = (_Base_ptr)0x0;" (assignment_expression "local_4c = (_Base_ptr)0x0" identifier = (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ;) (expression_statement "local_48 = (_Base_ptr)0x0;" (assignment_expression "local_48 = (_Base_ptr)0x0" identifier = (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ;) (labeled_statement "LAB_000e7142:\n      p_Var4 = (this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;" statement_identifier : (expression_statement "p_Var4 = (this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;" (assignment_expression "p_Var4 = (this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent" identifier = (field_expression "(this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent" (field_expression "(this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->section_starts_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->section_starts_)._M_t._M_impl" (field_expression "(this->section_starts_)._M_t" (parenthesized_expression "(this->section_starts_)" ( (field_expression "this->section_starts_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;)) (expression_statement "p_Var8 = &(this->section_starts_)._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var8 = &(this->section_starts_)._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(this->section_starts_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(this->section_starts_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->section_starts_)._M_t._M_impl" (field_expression "(this->section_starts_)._M_t" (parenthesized_expression "(this->section_starts_)" ( (field_expression "this->section_starts_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "local_54 = &p_Var8->_M_header;" (assignment_expression "local_54 = &p_Var8->_M_header" identifier = (pointer_expression "&p_Var8->_M_header" & (field_expression "p_Var8->_M_header" identifier -> field_identifier))) ;) (if_statement "if (p_Var4 == (_Base_ptr)0x0) {\nLAB_000e72cd:\n        local_38 = &section_name;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        std::\n        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n        ::\n        _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n    if (bVar3 != 99) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\n      do {\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      } while (bVar3 != 99);\n    }\n    pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number");\n    gold_error(pcVar7,pbVar2);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar6 != '\0') goto LAB_000e70d5;\n    pcVar7 = (char *)gettext("--section-start address missing");\n    gold_error(pcVar7);\n  }" if (parenthesized_expression "(p_Var4 == (_Base_ptr)0x0)" ( (binary_expression "p_Var4 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_000e72cd:\n        local_38 = &section_name;\n                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */\n        std::\n        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n        ::\n        _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n    if (bVar3 != 99) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\n      do {\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      } while (bVar3 != 99);\n    }\n    pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number");\n    gold_error(pcVar7,pbVar2);\n  }" { (labeled_statement "LAB_000e72cd:\n        local_38 = &section_name;" statement_identifier : (expression_statement "local_38 = &section_name;" (assignment_expression "local_38 = &section_name" identifier = (pointer_expression "&section_name" & identifier)) ;)) comment (ERROR "std::\n        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n        ::\n        _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::" (comma_expression "std::\n        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std" identifier (ERROR "::\n        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (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) >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (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>_>,_long_long_unsigned_int>,_std" (binary_expression "allocator<char>_>,_long_long_unsigned_int" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (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>_>,_long_long_unsigned_int>_>,_std" (binary_expression "allocator<char>_>,_long_long_unsigned_int>_" (binary_expression "allocator<char>_>,_long_long_unsigned_int" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (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>_>,_long_long_unsigned_int>_>_>\n        ::\n        _M_emplace_hint_unique<const_std" (binary_expression "allocator<char>_>,_long_long_unsigned_int>_>_>\n        ::\n        _M_emplace_hint_unique" (binary_expression "allocator<char>_>,_long_long_unsigned_int>_>_" (binary_expression "allocator<char>_>,_long_long_unsigned_int>_" (binary_expression "allocator<char>_>,_long_long_unsigned_int" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "piecewise_construct_t&,_std" identifier & (ERROR "," ,) identifier) : : (binary_expression "tuple<const_std" identifier < identifier) : : (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>_>&>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "&>,_std" & (ERROR ">," > ,) identifier)) : :) (expression_statement "tuple<>_>\n                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];" (binary_expression "tuple<>_>\n                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12]" (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > (parenthesized_expression "((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12]" ( (assignment_expression "(_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12]" (parenthesized_expression "(_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1)" ( (ERROR "_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (binary_expression "_Rb_tree<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>,_long_long_unsigned_int>,_std" (binary_expression "allocator<char>_>,_long_long_unsigned_int" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>,_long_long_unsigned_int>_>,_std" (binary_expression "allocator<char>_>,_long_long_unsigned_int>_" (binary_expression "allocator<char>_>,_long_long_unsigned_int" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (comma_expression "allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40,(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1" (binary_expression "allocator<char>_>,_long_long_unsigned_int>_>_>\n                    *)local_40" (binary_expression "allocator<char>_>,_long_long_unsigned_int>_>_" (binary_expression "allocator<char>_>,_long_long_unsigned_int>_" (binary_expression "allocator<char>_>,_long_long_unsigned_int" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*)local_40" * (ERROR ")" )) identifier)) , (comma_expression "(const_iterator)&this->section_starts_,\n                   (piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1" (binary_expression "(const_iterator)&this->section_starts_" (parenthesized_expression "(const_iterator)" ( identifier )) & (field_expression "this->section_starts_" identifier -> field_identifier)) , (comma_expression "(piecewise_construct_t *)local_54,\n                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1" (cast_expression "(piecewise_construct_t *)local_54" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58 == paVar1" (parenthesized_expression "(tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else {\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }\n      local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)" ( (ERROR "tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                    *)&std::piecewise_construct,(tuple<> *)&local_38);\n        local_54 = local_40[0];\n        local_58 = section_name._M_dataplus._M_p;\n      }\n      else" (comma_expression "tuple<const_std::__cxx11::basic_string<char,_std" (binary_expression "tuple<const_std::__cxx11::basic_string<char" (binary_expression "tuple<const_std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>&>\n                    *)&std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "&>\n                    *)&std" & (ERROR ">" >) (pointer_expression "*)&std" * (ERROR ")" )) (pointer_expression "&std" & identifier)))) : : (comma_expression "piecewise_construct,(tuple<> *)&local_38)" identifier , (parenthesized_expression "(tuple<> *)&local_38)" ( (binary_expression "tuple<> *)&local_38" identifier < (ERROR ">" >) (pointer_expression "*)&local_38" * (ERROR ")" )) (pointer_expression "&local_38" & identifier))) ))) ; (assignment_expression "local_54 = local_40[0]" identifier = (subscript_expression "local_40[0]" identifier [ number_literal ])) ; (assignment_expression "local_58 = section_name._M_dataplus._M_p" identifier = (field_expression "section_name._M_dataplus._M_p" (field_expression "section_name._M_dataplus" identifier . field_identifier) . field_identifier)) ; } else) (compound_statement "{\n        local_58 = section_name._M_dataplus._M_p;\n        do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);\nLAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;\n        p_Var4 = local_54[1]._M_parent;\n        p_Var10 = (_Base_ptr)section_name._M_string_length;\n        if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }\n        if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }\n        if (iVar9 < 0) goto LAB_000e72cd;\n      }" { (expression_statement "local_58 = section_name._M_dataplus._M_p;" (assignment_expression "local_58 = section_name._M_dataplus._M_p" identifier = (field_expression "section_name._M_dataplus._M_p" (field_expression "section_name._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (do_statement "do {\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        } while (p_Var13->_M_right != (_Base_ptr)0x0);" do (compound_statement "{\n          while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }\n          p_Var4 = p_Var13->_M_right;\n        }" { (while_statement "while( true ) {\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            p_Var13 = p_Var4;\n            p_Var4 = p_Var13[1]._M_parent;\n            p_Var10 = (_Base_ptr)section_name._M_string_length;\n            if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }\n            if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }\n            if (iVar9 < 0) break;\n            p_Var4 = p_Var13->_M_left;\n            local_54 = p_Var13;\n            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;\n          }" { (expression_statement "p_Var13 = p_Var4;" (assignment_expression "p_Var13 = p_Var4" identifier = identifier) ;) (expression_statement "p_Var4 = p_Var13[1]._M_parent;" (assignment_expression "p_Var4 = p_Var13[1]._M_parent" identifier = (field_expression "p_Var13[1]._M_parent" (subscript_expression "p_Var13[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var10 = (_Base_ptr)section_name._M_string_length;" (assignment_expression "p_Var10 = (_Base_ptr)section_name._M_string_length" identifier = (cast_expression "(_Base_ptr)section_name._M_string_length" ( (type_descriptor "_Base_ptr" type_identifier) ) (field_expression "section_name._M_string_length" identifier . field_identifier))) ;) (if_statement "if (p_Var4 <= section_name._M_string_length) {\n              p_Var10 = p_Var4;\n            }" if (parenthesized_expression "(p_Var4 <= section_name._M_string_length)" ( (binary_expression "p_Var4 <= section_name._M_string_length" identifier <= (field_expression "section_name._M_string_length" identifier . field_identifier)) )) (compound_statement "{\n              p_Var10 = p_Var4;\n            }" { (expression_statement "p_Var10 = p_Var4;" (assignment_expression "p_Var10 = p_Var4" identifier = identifier) ;) })) (if_statement "if ((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))\n            {\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }" if (parenthesized_expression "((p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))" ( (binary_expression "(p_Var10 == (_Base_ptr)0x0) ||\n               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0)" (parenthesized_expression "(p_Var10 == (_Base_ptr)0x0)" ( (binary_expression "p_Var10 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) || (parenthesized_expression "(iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0)" ( (comma_expression "iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0" (assignment_expression "iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10)" identifier = (call_expression "memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10)" identifier (argument_list "((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10)" ( (cast_expression "(void *)p_Var13[1]._M_color" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var13[1]._M_color" (subscript_expression "p_Var13[1]" identifier [ number_literal ]) . field_identifier)) , (field_expression "__s2._M_p" identifier . field_identifier) , (cast_expression "(size_t)p_Var10" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              iVar9 = (int)p_Var4 - section_name._M_string_length;\n            }" { (expression_statement "iVar9 = (int)p_Var4 - section_name._M_string_length;" (assignment_expression "iVar9 = (int)p_Var4 - section_name._M_string_length" identifier = (binary_expression "(int)p_Var4 - section_name._M_string_length" (cast_expression "(int)p_Var4" ( (type_descriptor "int" primitive_type) ) identifier) - (field_expression "section_name._M_string_length" identifier . field_identifier))) ;) })) (if_statement "if (iVar9 < 0) break;" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "p_Var4 = p_Var13->_M_left;" (assignment_expression "p_Var4 = p_Var13->_M_left" identifier = (field_expression "p_Var13->_M_left" identifier -> field_identifier)) ;) (expression_statement "local_54 = p_Var13;" (assignment_expression "local_54 = p_Var13" identifier = identifier) ;) (if_statement "if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;" if (parenthesized_expression "(p_Var13->_M_left == (_Base_ptr)0x0)" ( (binary_expression "p_Var13->_M_left == (_Base_ptr)0x0" (field_expression "p_Var13->_M_left" identifier -> field_identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_000e71b2;" goto statement_identifier ;)) })) (expression_statement "p_Var4 = p_Var13->_M_right;" (assignment_expression "p_Var4 = p_Var13->_M_right" identifier = (field_expression "p_Var13->_M_right" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(p_Var13->_M_right != (_Base_ptr)0x0)" ( (binary_expression "p_Var13->_M_right != (_Base_ptr)0x0" (field_expression "p_Var13->_M_right" identifier -> field_identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_000e71b2:\n        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;" statement_identifier : (if_statement "if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;" if (parenthesized_expression "(p_Var8 == (_Rb_tree_header *)local_54)" ( (binary_expression "p_Var8 == (_Rb_tree_header *)local_54" identifier == (cast_expression "(_Rb_tree_header *)local_54" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_000e72cd;" goto statement_identifier ;))) (expression_statement "p_Var4 = local_54[1]._M_parent;" (assignment_expression "p_Var4 = local_54[1]._M_parent" identifier = (field_expression "local_54[1]._M_parent" (subscript_expression "local_54[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var10 = (_Base_ptr)section_name._M_string_length;" (assignment_expression "p_Var10 = (_Base_ptr)section_name._M_string_length" identifier = (cast_expression "(_Base_ptr)section_name._M_string_length" ( (type_descriptor "_Base_ptr" type_identifier) ) (field_expression "section_name._M_string_length" identifier . field_identifier))) ;) (if_statement "if (p_Var4 < section_name._M_string_length) {\n          p_Var10 = p_Var4;\n        }" if (parenthesized_expression "(p_Var4 < section_name._M_string_length)" ( (binary_expression "p_Var4 < section_name._M_string_length" identifier < (field_expression "section_name._M_string_length" identifier . field_identifier)) )) (compound_statement "{\n          p_Var10 = p_Var4;\n        }" { (expression_statement "p_Var10 = p_Var4;" (assignment_expression "p_Var10 = p_Var4" identifier = identifier) ;) })) (if_statement "if ((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }" if (parenthesized_expression "((p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0))" ( (binary_expression "(p_Var10 == (_Base_ptr)0x0) ||\n           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)" (parenthesized_expression "(p_Var10 == (_Base_ptr)0x0)" ( (binary_expression "p_Var10 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) || (parenthesized_expression "(iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)" ( (comma_expression "iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0" (assignment_expression "iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10)" identifier = (call_expression "memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10)" identifier (argument_list "(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10)" ( (field_expression "__s2._M_p" identifier . field_identifier) , (cast_expression "(void *)local_54[1]._M_color" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "local_54[1]._M_color" (subscript_expression "local_54[1]" identifier [ number_literal ]) . field_identifier)) , (cast_expression "(size_t)p_Var10" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          iVar9 = section_name._M_string_length - (int)p_Var4;\n        }" { (expression_statement "iVar9 = section_name._M_string_length - (int)p_Var4;" (assignment_expression "iVar9 = section_name._M_string_length - (int)p_Var4" identifier = (binary_expression "section_name._M_string_length - (int)p_Var4" (field_expression "section_name._M_string_length" identifier . field_identifier) - (cast_expression "(int)p_Var4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (if_statement "if (iVar9 < 0) goto LAB_000e72cd;" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (goto_statement "goto LAB_000e72cd;" goto statement_identifier ;)) }) (ERROR "local_54[2]._M_left = local_4c;\n      local_54[2]._M_right = local_48;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *" identifier [ number_literal ] . identifier = identifier ; identifier [ number_literal ] . identifier = identifier ; if ( ( identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > identifier *) )) (ERROR "local_58" identifier) == identifier)))) )) (ERROR "{\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    bVar3" { return ; } goto identifier ; } identifier) = (subscript_expression ""cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12]" (string_literal ""cccccccccccccccccccccccccccccccccccccccccccccccc"" " string_content ") [ (pointer_expression "*pbVar12" * identifier) ])) ))) ;) (if_statement "if (bVar3 != 99) {\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\n      do {\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      } while (bVar3 != 99);\n    }" if (parenthesized_expression "(bVar3 != 99)" ( (binary_expression "bVar3 != 99" identifier != number_literal) )) (compound_statement "{\n      local_4c = (_Base_ptr)0x0;\n      local_48 = (_Base_ptr)0x0;\n      do {\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      } while (bVar3 != 99);\n    }" { (expression_statement "local_4c = (_Base_ptr)0x0;" (assignment_expression "local_4c = (_Base_ptr)0x0" identifier = (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ;) (expression_statement "local_48 = (_Base_ptr)0x0;" (assignment_expression "local_48 = (_Base_ptr)0x0" identifier = (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ;) (do_statement "do {\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      } while (bVar3 != 99);" do (compound_statement "{\n        uVar5 = (uint)local_4c >> 0x1c;\n        uVar11 = (int)local_4c * 0x10;\n        local_4c = (_Base_ptr)(uVar11 + bVar3);\n        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));\n        pbVar12 = pbVar12 + 1;\n        if (*pbVar12 == 0) goto LAB_000e7142;\n        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];\n      }" { (expression_statement "uVar5 = (uint)local_4c >> 0x1c;" (assignment_expression "uVar5 = (uint)local_4c >> 0x1c" identifier = (binary_expression "(uint)local_4c >> 0x1c" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "uVar11 = (int)local_4c * 0x10;" (assignment_expression "uVar11 = (int)local_4c * 0x10" identifier = (binary_expression "(int)local_4c * 0x10" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "local_4c = (_Base_ptr)(uVar11 + bVar3);" (assignment_expression "local_4c = (_Base_ptr)(uVar11 + bVar3)" identifier = (call_expression "(_Base_ptr)(uVar11 + bVar3)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "(uVar11 + bVar3)" ( (binary_expression "uVar11 + bVar3" identifier + identifier) )))) ;) (expression_statement "local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));" (assignment_expression "local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3))" identifier = (call_expression "(_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3))" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3))" ( (binary_expression "((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3)" (parenthesized_expression "((int)local_48 << 4 | uVar5)" ( (binary_expression "(int)local_48 << 4 | uVar5" (binary_expression "(int)local_48 << 4" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | identifier) )) + (cast_expression "(uint)CARRY4(uVar11,(uint)bVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar11,(uint)bVar3)" identifier (argument_list "(uVar11,(uint)bVar3)" ( identifier , (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) )))) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (*pbVar12 == 0) goto LAB_000e7142;" if (parenthesized_expression "(*pbVar12 == 0)" ( (binary_expression "*pbVar12 == 0" (pointer_expression "*pbVar12" * identifier) == number_literal) )) (goto_statement "goto LAB_000e7142;" goto statement_identifier ;)) (expression_statement "bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];" (assignment_expression "bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12]" identifier = (subscript_expression ""cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12]" (string_literal ""cccccccccccccccccccccccccccccccccccccccccccccccc"" " string_content ") [ (pointer_expression "*pbVar12" * identifier) ])) ;) }) while (parenthesized_expression "(bVar3 != 99)" ( (binary_expression "bVar3 != 99" identifier != number_literal) )) ;) })) (expression_statement "pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number");" (assignment_expression "pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number")" identifier = (cast_expression "(char *)gettext("--section-start argument %s is not a valid hex number")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("--section-start argument %s is not a valid hex number")" identifier (argument_list "("--section-start argument %s is not a valid hex number")" ( (string_literal ""--section-start argument %s is not a valid hex number"" " string_content ") ))))) ;) (expression_statement "gold_error(pcVar7,pbVar2);" (call_expression "gold_error(pcVar7,pbVar2)" identifier (argument_list "(pcVar7,pbVar2)" ( identifier , identifier ))) ;) }) (else_clause "else {\nLAB_000e70cd:\n    if (cVar6 != '\0') goto LAB_000e70d5;\n    pcVar7 = (char *)gettext("--section-start address missing");\n    gold_error(pcVar7);\n  }" else (compound_statement "{\nLAB_000e70cd:\n    if (cVar6 != '\0') goto LAB_000e70d5;\n    pcVar7 = (char *)gettext("--section-start address missing");\n    gold_error(pcVar7);\n  }" { (labeled_statement "LAB_000e70cd:\n    if (cVar6 != '\0') goto LAB_000e70d5;" statement_identifier : (if_statement "if (cVar6 != '\0') goto LAB_000e70d5;" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e70d5;" goto statement_identifier ;))) (expression_statement "pcVar7 = (char *)gettext("--section-start address missing");" (assignment_expression "pcVar7 = (char *)gettext("--section-start address missing")" identifier = (cast_expression "(char *)gettext("--section-start address missing")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("--section-start address missing")" identifier (argument_list "("--section-start address missing")" ( (string_literal ""--section-start address missing"" " string_content ") ))))) ;) (expression_statement "gold_error(pcVar7);" (call_expression "gold_error(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) }))) (expression_statement "local_58 = section_name._M_dataplus._M_p;" (assignment_expression "local_58 = section_name._M_dataplus._M_p" identifier = (field_expression "section_name._M_dataplus._M_p" (field_expression "section_name._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       *)section_name._M_dataplus._M_p == paVar1) {\n    return;\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)section_name._M_dataplus._M_p == paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)section_name._M_dataplus._M_p == paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)section_name._M_dataplus._M_p == paVar1" (binary_expression "allocator<char>_>_9\n       *)section_name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)section_name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "section_name._M_dataplus._M_p" (field_expression "section_name._M_dataplus" identifier . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_000e723f:\n  operator_delete(local_58);" statement_identifier : (expression_statement "operator_delete(local_58);" (call_expression "operator_delete(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;)) (return_statement "return;" return ;) }))))
(translation_unit "void FUN_000e7070(int param_1,undefined4 param_2,char *param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined **ppuVar3;\n  uint uVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined **ppuVar8;\n  undefined1 *puVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  int iVar14;\n  undefined4 uStack_70;\n  undefined1 auStack_6c [8];\n  int local_64;\n  undefined1 **local_60;\n  undefined1 *local_5c;\n  undefined1 *local_58;\n  int local_54;\n  undefined **local_50;\n  uint local_4c;\n  int local_48;\n  undefined **local_44;\n  int local_40;\n  undefined1 local_39;\n  undefined1 **local_38;\n  undefined1 *local_34;\n  undefined **local_30;\n  undefined1 local_2c [28];\n  \n  local_44 = &__DT_PLTGOT;\n  pcVar6 = strchr(param_3,0x3d);\n  if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }\n  local_60 = &local_34;\n  uStack_70 = 0;\n  local_5c = local_2c;\n  pbVar1 = (byte *)(pcVar6 + 1);\n  local_34 = local_5c;\n  FUN_00050e40(local_60,param_3,pcVar6);\n  cVar5 = pcVar6[1];\n  puVar12 = (undefined4 *)auStack_6c;\n  pbVar13 = pbVar1;\n  if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }\n  puVar12 = (undefined4 *)auStack_6c;\n  puVar9 = local_34;\n  if (local_34 == local_5c) {\n    return;\n  }\nLAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;\n  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;\n  FUN_001e6db0();\n  return;\n}\n\n" (function_definition "void FUN_000e7070(int param_1,undefined4 param_2,char *param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined **ppuVar3;\n  uint uVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined **ppuVar8;\n  undefined1 *puVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  int iVar14;\n  undefined4 uStack_70;\n  undefined1 auStack_6c [8];\n  int local_64;\n  undefined1 **local_60;\n  undefined1 *local_5c;\n  undefined1 *local_58;\n  int local_54;\n  undefined **local_50;\n  uint local_4c;\n  int local_48;\n  undefined **local_44;\n  int local_40;\n  undefined1 local_39;\n  undefined1 **local_38;\n  undefined1 *local_34;\n  undefined **local_30;\n  undefined1 local_2c [28];\n  \n  local_44 = &__DT_PLTGOT;\n  pcVar6 = strchr(param_3,0x3d);\n  if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }\n  local_60 = &local_34;\n  uStack_70 = 0;\n  local_5c = local_2c;\n  pbVar1 = (byte *)(pcVar6 + 1);\n  local_34 = local_5c;\n  FUN_00050e40(local_60,param_3,pcVar6);\n  cVar5 = pcVar6[1];\n  puVar12 = (undefined4 *)auStack_6c;\n  pbVar13 = pbVar1;\n  if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }\n  puVar12 = (undefined4 *)auStack_6c;\n  puVar9 = local_34;\n  if (local_34 == local_5c) {\n    return;\n  }\nLAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;\n  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;\n  FUN_001e6db0();\n  return;\n}" primitive_type (function_declarator "FUN_000e7070(int param_1,undefined4 param_2,char *param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,char *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  undefined **ppuVar3;\n  uint uVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined **ppuVar8;\n  undefined1 *puVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  int iVar14;\n  undefined4 uStack_70;\n  undefined1 auStack_6c [8];\n  int local_64;\n  undefined1 **local_60;\n  undefined1 *local_5c;\n  undefined1 *local_58;\n  int local_54;\n  undefined **local_50;\n  uint local_4c;\n  int local_48;\n  undefined **local_44;\n  int local_40;\n  undefined1 local_39;\n  undefined1 **local_38;\n  undefined1 *local_34;\n  undefined **local_30;\n  undefined1 local_2c [28];\n  \n  local_44 = &__DT_PLTGOT;\n  pcVar6 = strchr(param_3,0x3d);\n  if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }\n  local_60 = &local_34;\n  uStack_70 = 0;\n  local_5c = local_2c;\n  pbVar1 = (byte *)(pcVar6 + 1);\n  local_34 = local_5c;\n  FUN_00050e40(local_60,param_3,pcVar6);\n  cVar5 = pcVar6[1];\n  puVar12 = (undefined4 *)auStack_6c;\n  pbVar13 = pbVar1;\n  if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }\n  puVar12 = (undefined4 *)auStack_6c;\n  puVar9 = local_34;\n  if (local_34 == local_5c) {\n    return;\n  }\nLAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;\n  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;\n  FUN_001e6db0();\n  return;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined **ppuVar3;" type_identifier (pointer_declarator "**ppuVar3" * (pointer_declarator "*ppuVar3" * identifier)) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined1 auStack_6c [8];" type_identifier (array_declarator "auStack_6c [8]" identifier [ number_literal ]) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined1 **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "undefined1 *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "undefined1 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "undefined **local_50;" type_identifier (pointer_declarator "**local_50" * (pointer_declarator "*local_50" * identifier)) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "undefined **local_44;" type_identifier (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier)) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined1 local_39;" type_identifier identifier ;) (declaration "undefined1 **local_38;" type_identifier (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier)) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "local_44 = &__DT_PLTGOT;" (assignment_expression "local_44 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "pcVar6 = strchr(param_3,0x3d);" (assignment_expression "pcVar6 = strchr(param_3,0x3d)" identifier = (call_expression "strchr(param_3,0x3d)" identifier (argument_list "(param_3,0x3d)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }" { (expression_statement "uVar10 = gettext(local_44 + -0x3f6ef);" (assignment_expression "uVar10 = gettext(local_44 + -0x3f6ef)" identifier = (call_expression "gettext(local_44 + -0x3f6ef)" identifier (argument_list "(local_44 + -0x3f6ef)" ( (binary_expression "local_44 + -0x3f6ef" identifier + number_literal) )))) ;) (expression_statement "FUN_000654b0(uVar10);" (call_expression "FUN_000654b0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_60 = &local_34;" (assignment_expression "local_60 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" identifier = number_literal) ;) (expression_statement "local_5c = local_2c;" (assignment_expression "local_5c = local_2c" identifier = identifier) ;) (expression_statement "pbVar1 = (byte *)(pcVar6 + 1);" (assignment_expression "pbVar1 = (byte *)(pcVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "local_34 = local_5c;" (assignment_expression "local_34 = local_5c" identifier = identifier) ;) (expression_statement "FUN_00050e40(local_60,param_3,pcVar6);" (call_expression "FUN_00050e40(local_60,param_3,pcVar6)" identifier (argument_list "(local_60,param_3,pcVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "cVar5 = pcVar6[1];" (assignment_expression "cVar5 = pcVar6[1]" identifier = (subscript_expression "pcVar6[1]" identifier [ number_literal ])) ;) (expression_statement "puVar12 = (undefined4 *)auStack_6c;" (assignment_expression "puVar12 = (undefined4 *)auStack_6c" identifier = (cast_expression "(undefined4 *)auStack_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar13 = pbVar1;" (assignment_expression "pbVar13 = pbVar1" identifier = identifier) ;) (if_statement "if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }" if (parenthesized_expression "(cVar5 == '0')" ( (binary_expression "cVar5 == '0'" identifier == (char_literal "'0'" ' character ')) )) (compound_statement "{\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }" { (if_statement "if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }" if (parenthesized_expression "((pcVar6[2] & 0xdfU) == 0x58)" ( (binary_expression "(pcVar6[2] & 0xdfU) == 0x58" (parenthesized_expression "(pcVar6[2] & 0xdfU)" ( (binary_expression "pcVar6[2] & 0xdfU" (subscript_expression "pcVar6[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }" { (expression_statement "pbVar13 = (byte *)(pcVar6 + 3);" (assignment_expression "pbVar13 = (byte *)(pcVar6 + 3)" identifier = (cast_expression "(byte *)(pcVar6 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 3)" ( (binary_expression "pcVar6 + 3" identifier + number_literal) )))) ;) (expression_statement "cVar5 = pcVar6[3];" (assignment_expression "cVar5 = pcVar6[3]" identifier = (subscript_expression "pcVar6[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000e70cd;" goto statement_identifier ;) })) (labeled_statement "LAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;" statement_identifier : (expression_statement "uStack_70 = 0xe70dd;" (assignment_expression "uStack_70 = 0xe70dd" identifier = number_literal) ;)) (expression_statement "FUN_001e42c0();" (call_expression "FUN_001e42c0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }" if (parenthesized_expression "(*pbVar13 == 0)" ( (binary_expression "*pbVar13 == 0" (pointer_expression "*pbVar13" * identifier) == number_literal) )) (compound_statement "{\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000e7142:\n      local_64 = param_1 + 0x5a5c;" statement_identifier : (expression_statement "local_64 = param_1 + 0x5a5c;" (assignment_expression "local_64 = param_1 + 0x5a5c" identifier = (binary_expression "param_1 + 0x5a5c" identifier + number_literal)) ;)) (expression_statement "local_54 = local_64;" (assignment_expression "local_54 = local_64" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x5a60) == 0)" ( (binary_expression "*(int *)(param_1 + 0x5a60) == 0" (pointer_expression "*(int *)(param_1 + 0x5a60)" * (cast_expression "(int *)(param_1 + 0x5a60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a60)" ( (binary_expression "param_1 + 0x5a60" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }" { (labeled_statement "LAB_000e72cd:\n        local_38 = local_60;" statement_identifier : (expression_statement "local_38 = local_60;" (assignment_expression "local_38 = local_60" identifier = identifier) ;)) (expression_statement "FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);" (call_expression "FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39)" identifier (argument_list "(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39)" ( (pointer_expression "&local_40" & identifier) , (binary_expression "param_1 + 0x5a58" identifier + number_literal) , identifier , (binary_expression "local_44 + -0x3f5b4" identifier + number_literal) , (pointer_expression "&local_38" & identifier) , (pointer_expression "&local_39" & identifier) ))) ;) (expression_statement "local_54 = local_40;" (assignment_expression "local_54 = local_40" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_70;" (assignment_expression "puVar12 = &uStack_70" identifier = (pointer_expression "&uStack_70" & identifier)) ;) (expression_statement "local_58 = local_34;" (assignment_expression "local_58 = local_34" identifier = identifier) ;) }) (else_clause "else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }" else (compound_statement "{\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }" { (expression_statement "local_58 = local_34;" (assignment_expression "local_58 = local_34" identifier = identifier) ;) (expression_statement "local_50 = local_30;" (assignment_expression "local_50 = local_30" identifier = identifier) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x5a60);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x5a60)" identifier = (pointer_expression "*(int *)(param_1 + 0x5a60)" * (cast_expression "(int *)(param_1 + 0x5a60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a60)" ( (binary_expression "param_1 + 0x5a60" identifier + number_literal) ))))) ;) (expression_statement "local_54 = local_64;" (assignment_expression "local_54 = local_64" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);" do (compound_statement "{\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        }" { (while_statement "while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }" { (expression_statement "iVar14 = iVar7;" (assignment_expression "iVar14 = iVar7" identifier = identifier) ;) (expression_statement "ppuVar3 = *(undefined ***)(iVar14 + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(iVar14 + 0x14)" identifier = (pointer_expression "*(undefined ***)(iVar14 + 0x14)" * (cast_expression "(undefined ***)(iVar14 + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "ppuVar8 = local_50;" (assignment_expression "ppuVar8 = local_50" identifier = identifier) ;) (if_statement "if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }" if (parenthesized_expression "(ppuVar3 <= local_50)" ( (binary_expression "ppuVar3 <= local_50" identifier <= identifier) )) (compound_statement "{\n              ppuVar8 = ppuVar3;\n            }" { (expression_statement "ppuVar8 = ppuVar3;" (assignment_expression "ppuVar8 = ppuVar3" identifier = identifier) ;) })) (if_statement "if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }" if (parenthesized_expression "((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0))" ( (binary_expression "(ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)" (parenthesized_expression "(ppuVar8 == (undefined **)0x0)" ( (binary_expression "ppuVar8 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)" ( (comma_expression "iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0" (assignment_expression "iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8)" identifier = (call_expression "memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8)" identifier (argument_list "(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8)" ( (pointer_expression "*(void **)(iVar14 + 0x10)" * (cast_expression "(void **)(iVar14 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) , identifier , (cast_expression "(size_t)ppuVar8" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }" { (expression_statement "iVar7 = (int)ppuVar3 - (int)local_50;" (assignment_expression "iVar7 = (int)ppuVar3 - (int)local_50" identifier = (binary_expression "(int)ppuVar3 - (int)local_50" (cast_expression "(int)ppuVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (if_statement "if (iVar7 < 0) break;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = *(int *)(iVar14 + 8);" (assignment_expression "iVar7 = *(int *)(iVar14 + 8)" identifier = (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54 = iVar14;" (assignment_expression "local_54 = iVar14" identifier = identifier) ;) (if_statement "if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;" if (parenthesized_expression "(*(int *)(iVar14 + 8) == 0)" ( (binary_expression "*(int *)(iVar14 + 8) == 0" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000e71b2;" goto statement_identifier ;)) })) (expression_statement "iVar7 = *(int *)(iVar14 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar14 + 0xc)" identifier = (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(int *)(iVar14 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar14 + 0xc) != 0" (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;" statement_identifier : (if_statement "if (local_64 == local_54) goto LAB_000e72cd;" if (parenthesized_expression "(local_64 == local_54)" ( (binary_expression "local_64 == local_54" identifier == identifier) )) (goto_statement "goto LAB_000e72cd;" goto statement_identifier ;))) (expression_statement "ppuVar3 = *(undefined ***)(local_54 + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(local_54 + 0x14)" identifier = (pointer_expression "*(undefined ***)(local_54 + 0x14)" * (cast_expression "(undefined ***)(local_54 + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(local_54 + 0x14)" ( (binary_expression "local_54 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "ppuVar8 = local_50;" (assignment_expression "ppuVar8 = local_50" identifier = identifier) ;) (if_statement "if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }" if (parenthesized_expression "(ppuVar3 < local_50)" ( (binary_expression "ppuVar3 < local_50" identifier < identifier) )) (compound_statement "{\n          ppuVar8 = ppuVar3;\n        }" { (expression_statement "ppuVar8 = ppuVar3;" (assignment_expression "ppuVar8 = ppuVar3" identifier = identifier) ;) })) (if_statement "if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }" if (parenthesized_expression "((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0))" ( (binary_expression "(ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)" (parenthesized_expression "(ppuVar8 == (undefined **)0x0)" ( (binary_expression "ppuVar8 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)" ( (comma_expression "iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0" (assignment_expression "iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8)" identifier = (call_expression "memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8)" identifier (argument_list "(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8)" ( identifier , (pointer_expression "*(void **)(local_54 + 0x10)" * (cast_expression "(void **)(local_54 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_54 + 0x10)" ( (binary_expression "local_54 + 0x10" identifier + number_literal) )))) , (cast_expression "(size_t)ppuVar8" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }" { (expression_statement "iVar7 = (int)local_50 - (int)ppuVar3;" (assignment_expression "iVar7 = (int)local_50 - (int)ppuVar3" identifier = (binary_expression "(int)local_50 - (int)ppuVar3" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppuVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (if_statement "if (iVar7 < 0) goto LAB_000e72cd;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto LAB_000e72cd;" goto statement_identifier ;)) }))) (expression_statement "*(uint *)(local_54 + 0x28) = local_4c;" (assignment_expression "*(uint *)(local_54 + 0x28) = local_4c" (pointer_expression "*(uint *)(local_54 + 0x28)" * (cast_expression "(uint *)(local_54 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x28)" ( (binary_expression "local_54 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(local_54 + 0x2c) = local_48;" (assignment_expression "*(int *)(local_54 + 0x2c) = local_48" (pointer_expression "*(int *)(local_54 + 0x2c)" * (cast_expression "(int *)(local_54 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x2c)" ( (binary_expression "local_54 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar9 = local_58;" (assignment_expression "puVar9 = local_58" identifier = identifier) ;) (if_statement "if (local_58 == local_5c) {\n        return;\n      }" if (parenthesized_expression "(local_58 == local_5c)" ( (binary_expression "local_58 == local_5c" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_000e723f;" goto statement_identifier ;) })) (expression_statement "local_50 = local_44 + -0x3b008;" (assignment_expression "local_50 = local_44 + -0x3b008" identifier = (binary_expression "local_44 + -0x3b008" identifier + number_literal)) ;) (expression_statement "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);" (assignment_expression "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13)" identifier = (pointer_expression "*(byte *)((int)local_50 + (uint)*pbVar13)" * (cast_expression "(byte *)((int)local_50 + (uint)*pbVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + (uint)*pbVar13)" ( (binary_expression "(int)local_50 + (uint)*pbVar13" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) (if_statement "if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }" if (parenthesized_expression "(bVar2 != 99)" ( (binary_expression "bVar2 != 99" identifier != number_literal) )) (compound_statement "{\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);" do (compound_statement "{\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      }" { (expression_statement "uVar4 = local_4c >> 0x1c;" (assignment_expression "uVar4 = local_4c >> 0x1c" identifier = (binary_expression "local_4c >> 0x1c" identifier >> number_literal)) ;) (expression_statement "uVar11 = local_4c * 0x10;" (assignment_expression "uVar11 = local_4c * 0x10" identifier = (binary_expression "local_4c * 0x10" identifier * number_literal)) ;) (expression_statement "local_4c = uVar11 + bVar2;" (assignment_expression "local_4c = uVar11 + bVar2" identifier = (binary_expression "uVar11 + bVar2" identifier + identifier)) ;) (expression_statement "local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);" (assignment_expression "local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2)" identifier = (binary_expression "(local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2)" (parenthesized_expression "(local_48 << 4 | uVar4)" ( (binary_expression "local_48 << 4 | uVar4" (binary_expression "local_48 << 4" identifier << number_literal) | identifier) )) + (cast_expression "(uint)CARRY4(uVar11,(uint)bVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar11,(uint)bVar2)" identifier (argument_list "(uVar11,(uint)bVar2)" ( identifier , (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (if_statement "if (*pbVar13 == 0) goto LAB_000e7142;" if (parenthesized_expression "(*pbVar13 == 0)" ( (binary_expression "*pbVar13 == 0" (pointer_expression "*pbVar13" * identifier) == number_literal) )) (goto_statement "goto LAB_000e7142;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);" (assignment_expression "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13)" identifier = (pointer_expression "*(byte *)((int)local_50 + (uint)*pbVar13)" * (cast_expression "(byte *)((int)local_50 + (uint)*pbVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + (uint)*pbVar13)" ( (binary_expression "(int)local_50 + (uint)*pbVar13" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) }) while (parenthesized_expression "(bVar2 != 99)" ( (binary_expression "bVar2 != 99" identifier != number_literal) )) ;) })) (expression_statement "uVar10 = gettext(local_44 + -0x3f6d7);" (assignment_expression "uVar10 = gettext(local_44 + -0x3f6d7)" identifier = (call_expression "gettext(local_44 + -0x3f6d7)" identifier (argument_list "(local_44 + -0x3f6d7)" ( (binary_expression "local_44 + -0x3f6d7" identifier + number_literal) )))) ;) (expression_statement "FUN_000654b0(uVar10,pbVar1);" (call_expression "FUN_000654b0(uVar10,pbVar1)" identifier (argument_list "(uVar10,pbVar1)" ( identifier , identifier ))) ;) }) (else_clause "else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }" else (compound_statement "{\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }" { (labeled_statement "LAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;" statement_identifier : (if_statement "if (cVar5 != '\0') goto LAB_000e70d5;" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e70d5;" goto statement_identifier ;))) (expression_statement "uVar10 = gettext(local_44 + -0x3f6df);" (assignment_expression "uVar10 = gettext(local_44 + -0x3f6df)" identifier = (call_expression "gettext(local_44 + -0x3f6df)" identifier (argument_list "(local_44 + -0x3f6df)" ( (binary_expression "local_44 + -0x3f6df" identifier + number_literal) )))) ;) (expression_statement "FUN_000654b0(uVar10);" (call_expression "FUN_000654b0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) }))) (expression_statement "puVar12 = (undefined4 *)auStack_6c;" (assignment_expression "puVar12 = (undefined4 *)auStack_6c" identifier = (cast_expression "(undefined4 *)auStack_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" identifier = identifier) ;) (if_statement "if (local_34 == local_5c) {\n    return;\n  }" if (parenthesized_expression "(local_34 == local_5c)" ( (binary_expression "local_34 == local_5c" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;" statement_identifier : (expression_statement "*(undefined1 **)((int)puVar12 + -0x10) = puVar9;" (assignment_expression "*(undefined1 **)((int)puVar12 + -0x10) = puVar9" (pointer_expression "*(undefined1 **)((int)puVar12 + -0x10)" * (cast_expression "(undefined1 **)((int)puVar12 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar12 + -0x10)" ( (binary_expression "(int)puVar12 + -0x10" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;" (assignment_expression "*(undefined4 *)((int)puVar12 + -0x14) = 0xe724b" (pointer_expression "*(undefined4 *)((int)puVar12 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + -0x14)" ( (binary_expression "(int)puVar12 + -0x14" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | IDENT) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (labeled_statement statement_identifier : (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) )))) = IDENT) ;)) (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 ;) })))
(function_definition "void FUN_000e7070(int param_1,undefined4 param_2,char *param_3)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  undefined **ppuVar3;\n  uint uVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined **ppuVar8;\n  undefined1 *puVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  int iVar14;\n  undefined4 uStack_70;\n  undefined1 auStack_6c [8];\n  int local_64;\n  undefined1 **local_60;\n  undefined1 *local_5c;\n  undefined1 *local_58;\n  int local_54;\n  undefined **local_50;\n  uint local_4c;\n  int local_48;\n  undefined **local_44;\n  int local_40;\n  undefined1 local_39;\n  undefined1 **local_38;\n  undefined1 *local_34;\n  undefined **local_30;\n  undefined1 local_2c [28];\n  \n  local_44 = &__DT_PLTGOT;\n  pcVar6 = strchr(param_3,0x3d);\n  if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }\n  local_60 = &local_34;\n  uStack_70 = 0;\n  local_5c = local_2c;\n  pbVar1 = (byte *)(pcVar6 + 1);\n  local_34 = local_5c;\n  FUN_00050e40(local_60,param_3,pcVar6);\n  cVar5 = pcVar6[1];\n  puVar12 = (undefined4 *)auStack_6c;\n  pbVar13 = pbVar1;\n  if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }\n  puVar12 = (undefined4 *)auStack_6c;\n  puVar9 = local_34;\n  if (local_34 == local_5c) {\n    return;\n  }\nLAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;\n  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;\n  FUN_001e6db0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000e7070(int param_1,undefined4 param_2,char *param_3)" (identifier "FUN_000e7070") (parameter_list "(int param_1,undefined4 param_2,char *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  undefined **ppuVar3;\n  uint uVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined **ppuVar8;\n  undefined1 *puVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  int iVar14;\n  undefined4 uStack_70;\n  undefined1 auStack_6c [8];\n  int local_64;\n  undefined1 **local_60;\n  undefined1 *local_5c;\n  undefined1 *local_58;\n  int local_54;\n  undefined **local_50;\n  uint local_4c;\n  int local_48;\n  undefined **local_44;\n  int local_40;\n  undefined1 local_39;\n  undefined1 **local_38;\n  undefined1 *local_34;\n  undefined **local_30;\n  undefined1 local_2c [28];\n  \n  local_44 = &__DT_PLTGOT;\n  pcVar6 = strchr(param_3,0x3d);\n  if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }\n  local_60 = &local_34;\n  uStack_70 = 0;\n  local_5c = local_2c;\n  pbVar1 = (byte *)(pcVar6 + 1);\n  local_34 = local_5c;\n  FUN_00050e40(local_60,param_3,pcVar6);\n  cVar5 = pcVar6[1];\n  puVar12 = (undefined4 *)auStack_6c;\n  pbVar13 = pbVar1;\n  if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }\n  puVar12 = (undefined4 *)auStack_6c;\n  puVar9 = local_34;\n  if (local_34 == local_5c) {\n    return;\n  }\nLAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;\n  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;\n  FUN_001e6db0();\n  return;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "undefined **ppuVar3;" (type_identifier "undefined") (pointer_declarator "**ppuVar3" (* "*") (pointer_declarator "*ppuVar3" (* "*") (identifier "ppuVar3"))) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined **ppuVar8;" (type_identifier "undefined") (pointer_declarator "**ppuVar8" (* "*") (pointer_declarator "*ppuVar8" (* "*") (identifier "ppuVar8"))) (; ";")) (declaration "undefined1 *puVar9;" (type_identifier "undefined1") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined4 uStack_70;" (type_identifier "undefined4") (identifier "uStack_70") (; ";")) (declaration "undefined1 auStack_6c [8];" (type_identifier "undefined1") (array_declarator "auStack_6c [8]" (identifier "auStack_6c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "undefined1 **local_60;" (type_identifier "undefined1") (pointer_declarator "**local_60" (* "*") (pointer_declarator "*local_60" (* "*") (identifier "local_60"))) (; ";")) (declaration "undefined1 *local_5c;" (type_identifier "undefined1") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "undefined1 *local_58;" (type_identifier "undefined1") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "undefined **local_50;" (type_identifier "undefined") (pointer_declarator "**local_50" (* "*") (pointer_declarator "*local_50" (* "*") (identifier "local_50"))) (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "undefined **local_44;" (type_identifier "undefined") (pointer_declarator "**local_44" (* "*") (pointer_declarator "*local_44" (* "*") (identifier "local_44"))) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined1 local_39;" (type_identifier "undefined1") (identifier "local_39") (; ";")) (declaration "undefined1 **local_38;" (type_identifier "undefined1") (pointer_declarator "**local_38" (* "*") (pointer_declarator "*local_38" (* "*") (identifier "local_38"))) (; ";")) (declaration "undefined1 *local_34;" (type_identifier "undefined1") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined **local_30;" (type_identifier "undefined") (pointer_declarator "**local_30" (* "*") (pointer_declarator "*local_30" (* "*") (identifier "local_30"))) (; ";")) (declaration "undefined1 local_2c [28];" (type_identifier "undefined1") (array_declarator "local_2c [28]" (identifier "local_2c") ([ "[") (number_literal "28") (] "]")) (; ";")) (expression_statement "local_44 = &__DT_PLTGOT;" (assignment_expression "local_44 = &__DT_PLTGOT" (identifier "local_44") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "pcVar6 = strchr(param_3,0x3d);" (assignment_expression "pcVar6 = strchr(param_3,0x3d)" (identifier "pcVar6") (= "=") (call_expression "strchr(param_3,0x3d)" (identifier "strchr") (argument_list "(param_3,0x3d)" (( "(") (identifier "param_3") (, ",") (number_literal "0x3d") () ")")))) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar10 = gettext(local_44 + -0x3f6ef);\n    FUN_000654b0(uVar10);\n    return;\n  }" ({ "{") (expression_statement "uVar10 = gettext(local_44 + -0x3f6ef);" (assignment_expression "uVar10 = gettext(local_44 + -0x3f6ef)" (identifier "uVar10") (= "=") (call_expression "gettext(local_44 + -0x3f6ef)" (identifier "gettext") (argument_list "(local_44 + -0x3f6ef)" (( "(") (binary_expression "local_44 + -0x3f6ef" (identifier "local_44") (+ "+") (number_literal "-0x3f6ef")) () ")")))) (; ";")) (expression_statement "FUN_000654b0(uVar10);" (call_expression "FUN_000654b0(uVar10)" (identifier "FUN_000654b0") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_60 = &local_34;" (assignment_expression "local_60 = &local_34" (identifier "local_60") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" (identifier "uStack_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = local_2c;" (assignment_expression "local_5c = local_2c" (identifier "local_5c") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "pbVar1 = (byte *)(pcVar6 + 1);" (assignment_expression "pbVar1 = (byte *)(pcVar6 + 1)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)(pcVar6 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 1)" (( "(") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_34 = local_5c;" (assignment_expression "local_34 = local_5c" (identifier "local_34") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "FUN_00050e40(local_60,param_3,pcVar6);" (call_expression "FUN_00050e40(local_60,param_3,pcVar6)" (identifier "FUN_00050e40") (argument_list "(local_60,param_3,pcVar6)" (( "(") (identifier "local_60") (, ",") (identifier "param_3") (, ",") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "cVar5 = pcVar6[1];" (assignment_expression "cVar5 = pcVar6[1]" (identifier "cVar5") (= "=") (subscript_expression "pcVar6[1]" (identifier "pcVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar12 = (undefined4 *)auStack_6c;" (assignment_expression "puVar12 = (undefined4 *)auStack_6c" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)auStack_6c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_6c"))) (; ";")) (expression_statement "pbVar13 = pbVar1;" (assignment_expression "pbVar13 = pbVar1" (identifier "pbVar13") (= "=") (identifier "pbVar1")) (; ";")) (if_statement "if (cVar5 == '0') {\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }\n  else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }" (if "if") (parenthesized_expression "(cVar5 == '0')" (( "(") (binary_expression "cVar5 == '0'" (identifier "cVar5") (== "==") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")")) (compound_statement "{\n    if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }\nLAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;\n    FUN_001e42c0();\n    if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }\n    local_50 = local_44 + -0x3b008;\n    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n    if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }\n    uVar10 = gettext(local_44 + -0x3f6d7);\n    FUN_000654b0(uVar10,pbVar1);\n  }" ({ "{") (if_statement "if ((pcVar6[2] & 0xdfU) == 0x58) {\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }" (if "if") (parenthesized_expression "((pcVar6[2] & 0xdfU) == 0x58)" (( "(") (binary_expression "(pcVar6[2] & 0xdfU) == 0x58" (parenthesized_expression "(pcVar6[2] & 0xdfU)" (( "(") (binary_expression "pcVar6[2] & 0xdfU" (subscript_expression "pcVar6[2]" (identifier "pcVar6") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0xdfU")) () ")")) (== "==") (number_literal "0x58")) () ")")) (compound_statement "{\n      pbVar13 = (byte *)(pcVar6 + 3);\n      cVar5 = pcVar6[3];\n      goto LAB_000e70cd;\n    }" ({ "{") (expression_statement "pbVar13 = (byte *)(pcVar6 + 3);" (assignment_expression "pbVar13 = (byte *)(pcVar6 + 3)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(pcVar6 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 3)" (( "(") (binary_expression "pcVar6 + 3" (identifier "pcVar6") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "cVar5 = pcVar6[3];" (assignment_expression "cVar5 = pcVar6[3]" (identifier "cVar5") (= "=") (subscript_expression "pcVar6[3]" (identifier "pcVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (goto_statement "goto LAB_000e70cd;" (goto "goto") (statement_identifier "LAB_000e70cd") (; ";")) (} "}"))) (labeled_statement "LAB_000e70d5:\n                    \n    uStack_70 = 0xe70dd;" (statement_identifier "LAB_000e70d5") (: ":") (expression_statement "uStack_70 = 0xe70dd;" (assignment_expression "uStack_70 = 0xe70dd" (identifier "uStack_70") (= "=") (number_literal "0xe70dd")) (; ";"))) (expression_statement "FUN_001e42c0();" (call_expression "FUN_001e42c0()" (identifier "FUN_001e42c0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*pbVar13 == 0) {\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }" (if "if") (parenthesized_expression "(*pbVar13 == 0)" (( "(") (binary_expression "*pbVar13 == 0" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_4c = 0;\n      local_48 = 0;\nLAB_000e7142:\n      local_64 = param_1 + 0x5a5c;\n      local_54 = local_64;\n      if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }\n      *(uint *)(local_54 + 0x28) = local_4c;\n      *(int *)(local_54 + 0x2c) = local_48;\n      puVar9 = local_58;\n      if (local_58 == local_5c) {\n        return;\n      }\n      goto LAB_000e723f;\n    }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000e7142:\n      local_64 = param_1 + 0x5a5c;" (statement_identifier "LAB_000e7142") (: ":") (expression_statement "local_64 = param_1 + 0x5a5c;" (assignment_expression "local_64 = param_1 + 0x5a5c" (identifier "local_64") (= "=") (binary_expression "param_1 + 0x5a5c" (identifier "param_1") (+ "+") (number_literal "0x5a5c"))) (; ";"))) (expression_statement "local_54 = local_64;" (assignment_expression "local_54 = local_64" (identifier "local_54") (= "=") (identifier "local_64")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x5a60) == 0) {\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }\n      else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x5a60) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x5a60) == 0" (pointer_expression "*(int *)(param_1 + 0x5a60)" (* "*") (cast_expression "(int *)(param_1 + 0x5a60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a60)" (( "(") (binary_expression "param_1 + 0x5a60" (identifier "param_1") (+ "+") (number_literal "0x5a60")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000e72cd:\n        local_38 = local_60;\n                    \n        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);\n        local_54 = local_40;\n        puVar12 = &uStack_70;\n        local_58 = local_34;\n      }" ({ "{") (labeled_statement "LAB_000e72cd:\n        local_38 = local_60;" (statement_identifier "LAB_000e72cd") (: ":") (expression_statement "local_38 = local_60;" (assignment_expression "local_38 = local_60" (identifier "local_38") (= "=") (identifier "local_60")) (; ";"))) (expression_statement "FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);" (call_expression "FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39)" (identifier "FUN_000ebf30") (argument_list "(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39)" (( "(") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (binary_expression "param_1 + 0x5a58" (identifier "param_1") (+ "+") (number_literal "0x5a58")) (, ",") (identifier "local_54") (, ",") (binary_expression "local_44 + -0x3f5b4" (identifier "local_44") (+ "+") (number_literal "-0x3f5b4")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (pointer_expression "&local_39" (& "&") (identifier "local_39")) () ")"))) (; ";")) (expression_statement "local_54 = local_40;" (assignment_expression "local_54 = local_40" (identifier "local_54") (= "=") (identifier "local_40")) (; ";")) (expression_statement "puVar12 = &uStack_70;" (assignment_expression "puVar12 = &uStack_70" (identifier "puVar12") (= "=") (pointer_expression "&uStack_70" (& "&") (identifier "uStack_70"))) (; ";")) (expression_statement "local_58 = local_34;" (assignment_expression "local_58 = local_34" (identifier "local_58") (= "=") (identifier "local_34")) (; ";")) (} "}")) (else_clause "else {\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }" (else "else") (compound_statement "{\n        local_58 = local_34;\n        local_50 = local_30;\n        iVar7 = *(int *)(param_1 + 0x5a60);\n        local_54 = local_64;\n        do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);\nLAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;\n        ppuVar3 = *(undefined ***)(local_54 + 0x14);\n        ppuVar8 = local_50;\n        if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }\n        if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }\n        if (iVar7 < 0) goto LAB_000e72cd;\n      }" ({ "{") (expression_statement "local_58 = local_34;" (assignment_expression "local_58 = local_34" (identifier "local_58") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_50 = local_30;" (assignment_expression "local_50 = local_30" (identifier "local_50") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar7 = *(int *)(param_1 + 0x5a60);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x5a60)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x5a60)" (* "*") (cast_expression "(int *)(param_1 + 0x5a60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a60)" (( "(") (binary_expression "param_1 + 0x5a60" (identifier "param_1") (+ "+") (number_literal "0x5a60")) () ")"))))) (; ";")) (expression_statement "local_54 = local_64;" (assignment_expression "local_54 = local_64" (identifier "local_54") (= "=") (identifier "local_64")) (; ";")) (do_statement "do {\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        } while (*(int *)(iVar14 + 0xc) != 0);" (do "do") (compound_statement "{\n          while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }\n          iVar7 = *(int *)(iVar14 + 0xc);\n        }" ({ "{") (while_statement "while( true ) {\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            iVar14 = iVar7;\n            ppuVar3 = *(undefined ***)(iVar14 + 0x14);\n            ppuVar8 = local_50;\n            if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }\n            if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }\n            if (iVar7 < 0) break;\n            iVar7 = *(int *)(iVar14 + 8);\n            local_54 = iVar14;\n            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;\n          }" ({ "{") (expression_statement "iVar14 = iVar7;" (assignment_expression "iVar14 = iVar7" (identifier "iVar14") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "ppuVar3 = *(undefined ***)(iVar14 + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(iVar14 + 0x14)" (identifier "ppuVar3") (= "=") (pointer_expression "*(undefined ***)(iVar14 + 0x14)" (* "*") (cast_expression "(undefined ***)(iVar14 + 0x14)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "ppuVar8 = local_50;" (assignment_expression "ppuVar8 = local_50" (identifier "ppuVar8") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (ppuVar3 <= local_50) {\n              ppuVar8 = ppuVar3;\n            }" (if "if") (parenthesized_expression "(ppuVar3 <= local_50)" (( "(") (binary_expression "ppuVar3 <= local_50" (identifier "ppuVar3") (<= "<=") (identifier "local_50")) () ")")) (compound_statement "{\n              ppuVar8 = ppuVar3;\n            }" ({ "{") (expression_statement "ppuVar8 = ppuVar3;" (assignment_expression "ppuVar8 = ppuVar3" (identifier "ppuVar8") (= "=") (identifier "ppuVar3")) (; ";")) (} "}"))) (if_statement "if ((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }" (if "if") (parenthesized_expression "((ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0))" (( "(") (binary_expression "(ppuVar8 == (undefined **)0x0) ||\n               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)" (parenthesized_expression "(ppuVar8 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar8 == (undefined **)0x0" (identifier "ppuVar8") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)" (( "(") (comma_expression "iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0" (assignment_expression "iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8)" (identifier "iVar7") (= "=") (call_expression "memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8)" (identifier "memcmp") (argument_list "(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8)" (( "(") (pointer_expression "*(void **)(iVar14 + 0x10)" (* "*") (cast_expression "(void **)(iVar14 + 0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0x10)" (( "(") (binary_expression "iVar14 + 0x10" (identifier "iVar14") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "local_58") (, ",") (cast_expression "(size_t)ppuVar8" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "ppuVar8")) () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              iVar7 = (int)ppuVar3 - (int)local_50;\n            }" ({ "{") (expression_statement "iVar7 = (int)ppuVar3 - (int)local_50;" (assignment_expression "iVar7 = (int)ppuVar3 - (int)local_50" (identifier "iVar7") (= "=") (binary_expression "(int)ppuVar3 - (int)local_50" (cast_expression "(int)ppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar3")) (- "-") (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")))) (; ";")) (} "}"))) (if_statement "if (iVar7 < 0) break;" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = *(int *)(iVar14 + 8);" (assignment_expression "iVar7 = *(int *)(iVar14 + 8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar14 + 8)" (* "*") (cast_expression "(int *)(iVar14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_54 = iVar14;" (assignment_expression "local_54 = iVar14" (identifier "local_54") (= "=") (identifier "iVar14")) (; ";")) (if_statement "if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar14 + 8) == 0" (pointer_expression "*(int *)(iVar14 + 8)" (* "*") (cast_expression "(int *)(iVar14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000e71b2;" (goto "goto") (statement_identifier "LAB_000e71b2") (; ";"))) (} "}"))) (expression_statement "iVar7 = *(int *)(iVar14 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar14 + 0xc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar14 + 0xc)" (* "*") (cast_expression "(int *)(iVar14 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)(iVar14 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0xc) != 0" (pointer_expression "*(int *)(iVar14 + 0xc)" (* "*") (cast_expression "(int *)(iVar14 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_000e71b2:\n        if (local_64 == local_54) goto LAB_000e72cd;" (statement_identifier "LAB_000e71b2") (: ":") (if_statement "if (local_64 == local_54) goto LAB_000e72cd;" (if "if") (parenthesized_expression "(local_64 == local_54)" (( "(") (binary_expression "local_64 == local_54" (identifier "local_64") (== "==") (identifier "local_54")) () ")")) (goto_statement "goto LAB_000e72cd;" (goto "goto") (statement_identifier "LAB_000e72cd") (; ";")))) (expression_statement "ppuVar3 = *(undefined ***)(local_54 + 0x14);" (assignment_expression "ppuVar3 = *(undefined ***)(local_54 + 0x14)" (identifier "ppuVar3") (= "=") (pointer_expression "*(undefined ***)(local_54 + 0x14)" (* "*") (cast_expression "(undefined ***)(local_54 + 0x14)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(local_54 + 0x14)" (( "(") (binary_expression "local_54 + 0x14" (identifier "local_54") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "ppuVar8 = local_50;" (assignment_expression "ppuVar8 = local_50" (identifier "ppuVar8") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (ppuVar3 < local_50) {\n          ppuVar8 = ppuVar3;\n        }" (if "if") (parenthesized_expression "(ppuVar3 < local_50)" (( "(") (binary_expression "ppuVar3 < local_50" (identifier "ppuVar3") (< "<") (identifier "local_50")) () ")")) (compound_statement "{\n          ppuVar8 = ppuVar3;\n        }" ({ "{") (expression_statement "ppuVar8 = ppuVar3;" (assignment_expression "ppuVar8 = ppuVar3" (identifier "ppuVar8") (= "=") (identifier "ppuVar3")) (; ";")) (} "}"))) (if_statement "if ((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }" (if "if") (parenthesized_expression "((ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0))" (( "(") (binary_expression "(ppuVar8 == (undefined **)0x0) ||\n           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)" (parenthesized_expression "(ppuVar8 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar8 == (undefined **)0x0" (identifier "ppuVar8") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)" (( "(") (comma_expression "iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0" (assignment_expression "iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8)" (identifier "iVar7") (= "=") (call_expression "memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8)" (identifier "memcmp") (argument_list "(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8)" (( "(") (identifier "local_58") (, ",") (pointer_expression "*(void **)(local_54 + 0x10)" (* "*") (cast_expression "(void **)(local_54 + 0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_54 + 0x10)" (( "(") (binary_expression "local_54 + 0x10" (identifier "local_54") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (cast_expression "(size_t)ppuVar8" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "ppuVar8")) () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          iVar7 = (int)local_50 - (int)ppuVar3;\n        }" ({ "{") (expression_statement "iVar7 = (int)local_50 - (int)ppuVar3;" (assignment_expression "iVar7 = (int)local_50 - (int)ppuVar3" (identifier "iVar7") (= "=") (binary_expression "(int)local_50 - (int)ppuVar3" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (- "-") (cast_expression "(int)ppuVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar3")))) (; ";")) (} "}"))) (if_statement "if (iVar7 < 0) goto LAB_000e72cd;" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_000e72cd;" (goto "goto") (statement_identifier "LAB_000e72cd") (; ";"))) (} "}")))) (expression_statement "*(uint *)(local_54 + 0x28) = local_4c;" (assignment_expression "*(uint *)(local_54 + 0x28) = local_4c" (pointer_expression "*(uint *)(local_54 + 0x28)" (* "*") (cast_expression "(uint *)(local_54 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x28)" (( "(") (binary_expression "local_54 + 0x28" (identifier "local_54") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(int *)(local_54 + 0x2c) = local_48;" (assignment_expression "*(int *)(local_54 + 0x2c) = local_48" (pointer_expression "*(int *)(local_54 + 0x2c)" (* "*") (cast_expression "(int *)(local_54 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x2c)" (( "(") (binary_expression "local_54 + 0x2c" (identifier "local_54") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar9 = local_58;" (assignment_expression "puVar9 = local_58" (identifier "puVar9") (= "=") (identifier "local_58")) (; ";")) (if_statement "if (local_58 == local_5c) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_58 == local_5c)" (( "(") (binary_expression "local_58 == local_5c" (identifier "local_58") (== "==") (identifier "local_5c")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_000e723f;" (goto "goto") (statement_identifier "LAB_000e723f") (; ";")) (} "}"))) (expression_statement "local_50 = local_44 + -0x3b008;" (assignment_expression "local_50 = local_44 + -0x3b008" (identifier "local_50") (= "=") (binary_expression "local_44 + -0x3b008" (identifier "local_44") (+ "+") (number_literal "-0x3b008"))) (; ";")) (expression_statement "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);" (assignment_expression "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)((int)local_50 + (uint)*pbVar13)" (* "*") (cast_expression "(byte *)((int)local_50 + (uint)*pbVar13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_50 + (uint)*pbVar13)" (( "(") (binary_expression "(int)local_50 + (uint)*pbVar13" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (+ "+") (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13"))) () ")"))))) (; ";")) (if_statement "if (bVar2 != 99) {\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }" (if "if") (parenthesized_expression "(bVar2 != 99)" (( "(") (binary_expression "bVar2 != 99" (identifier "bVar2") (!= "!=") (number_literal "99")) () ")")) (compound_statement "{\n      local_4c = 0;\n      local_48 = 0;\n      do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);\n    }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      } while (bVar2 != 99);" (do "do") (compound_statement "{\n        uVar4 = local_4c >> 0x1c;\n        uVar11 = local_4c * 0x10;\n        local_4c = uVar11 + bVar2;\n        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);\n        pbVar13 = pbVar13 + 1;\n        if (*pbVar13 == 0) goto LAB_000e7142;\n        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);\n      }" ({ "{") (expression_statement "uVar4 = local_4c >> 0x1c;" (assignment_expression "uVar4 = local_4c >> 0x1c" (identifier "uVar4") (= "=") (binary_expression "local_4c >> 0x1c" (identifier "local_4c") (>> ">>") (number_literal "0x1c"))) (; ";")) (expression_statement "uVar11 = local_4c * 0x10;" (assignment_expression "uVar11 = local_4c * 0x10" (identifier "uVar11") (= "=") (binary_expression "local_4c * 0x10" (identifier "local_4c") (* "*") (number_literal "0x10"))) (; ";")) (expression_statement "local_4c = uVar11 + bVar2;" (assignment_expression "local_4c = uVar11 + bVar2" (identifier "local_4c") (= "=") (binary_expression "uVar11 + bVar2" (identifier "uVar11") (+ "+") (identifier "bVar2"))) (; ";")) (expression_statement "local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);" (assignment_expression "local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2)" (identifier "local_48") (= "=") (binary_expression "(local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2)" (parenthesized_expression "(local_48 << 4 | uVar4)" (( "(") (binary_expression "local_48 << 4 | uVar4" (binary_expression "local_48 << 4" (identifier "local_48") (<< "<<") (number_literal "4")) (| "|") (identifier "uVar4")) () ")")) (+ "+") (cast_expression "(uint)CARRY4(uVar11,(uint)bVar2)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar11,(uint)bVar2)" (identifier "CARRY4") (argument_list "(uVar11,(uint)bVar2)" (( "(") (identifier "uVar11") (, ",") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) () ")")))))) (; ";")) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*pbVar13 == 0) goto LAB_000e7142;" (if "if") (parenthesized_expression "(*pbVar13 == 0)" (( "(") (binary_expression "*pbVar13 == 0" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000e7142;" (goto "goto") (statement_identifier "LAB_000e7142") (; ";"))) (expression_statement "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);" (assignment_expression "bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)((int)local_50 + (uint)*pbVar13)" (* "*") (cast_expression "(byte *)((int)local_50 + (uint)*pbVar13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_50 + (uint)*pbVar13)" (( "(") (binary_expression "(int)local_50 + (uint)*pbVar13" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (+ "+") (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar2 != 99)" (( "(") (binary_expression "bVar2 != 99" (identifier "bVar2") (!= "!=") (number_literal "99")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar10 = gettext(local_44 + -0x3f6d7);" (assignment_expression "uVar10 = gettext(local_44 + -0x3f6d7)" (identifier "uVar10") (= "=") (call_expression "gettext(local_44 + -0x3f6d7)" (identifier "gettext") (argument_list "(local_44 + -0x3f6d7)" (( "(") (binary_expression "local_44 + -0x3f6d7" (identifier "local_44") (+ "+") (number_literal "-0x3f6d7")) () ")")))) (; ";")) (expression_statement "FUN_000654b0(uVar10,pbVar1);" (call_expression "FUN_000654b0(uVar10,pbVar1)" (identifier "FUN_000654b0") (argument_list "(uVar10,pbVar1)" (( "(") (identifier "uVar10") (, ",") (identifier "pbVar1") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }" (else "else") (compound_statement "{\nLAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;\n    uVar10 = gettext(local_44 + -0x3f6df);\n    FUN_000654b0(uVar10);\n  }" ({ "{") (labeled_statement "LAB_000e70cd:\n    if (cVar5 != '\0') goto LAB_000e70d5;" (statement_identifier "LAB_000e70cd") (: ":") (if_statement "if (cVar5 != '\0') goto LAB_000e70d5;" (if "if") (parenthesized_expression "(cVar5 != '\0')" (( "(") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000e70d5;" (goto "goto") (statement_identifier "LAB_000e70d5") (; ";")))) (expression_statement "uVar10 = gettext(local_44 + -0x3f6df);" (assignment_expression "uVar10 = gettext(local_44 + -0x3f6df)" (identifier "uVar10") (= "=") (call_expression "gettext(local_44 + -0x3f6df)" (identifier "gettext") (argument_list "(local_44 + -0x3f6df)" (( "(") (binary_expression "local_44 + -0x3f6df" (identifier "local_44") (+ "+") (number_literal "-0x3f6df")) () ")")))) (; ";")) (expression_statement "FUN_000654b0(uVar10);" (call_expression "FUN_000654b0(uVar10)" (identifier "FUN_000654b0") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar12 = (undefined4 *)auStack_6c;" (assignment_expression "puVar12 = (undefined4 *)auStack_6c" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)auStack_6c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_6c"))) (; ";")) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" (identifier "puVar9") (= "=") (identifier "local_34")) (; ";")) (if_statement "if (local_34 == local_5c) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_34 == local_5c)" (( "(") (binary_expression "local_34 == local_5c" (identifier "local_34") (== "==") (identifier "local_5c")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_000e723f:\n  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;" (statement_identifier "LAB_000e723f") (: ":") (expression_statement "*(undefined1 **)((int)puVar12 + -0x10) = puVar9;" (assignment_expression "*(undefined1 **)((int)puVar12 + -0x10) = puVar9" (pointer_expression "*(undefined1 **)((int)puVar12 + -0x10)" (* "*") (cast_expression "(undefined1 **)((int)puVar12 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar12 + -0x10)" (( "(") (binary_expression "(int)puVar12 + -0x10" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar9")) (; ";"))) (expression_statement "*(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;" (assignment_expression "*(undefined4 *)((int)puVar12 + -0x14) = 0xe724b" (pointer_expression "*(undefined4 *)((int)puVar12 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)puVar12 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + -0x14)" (( "(") (binary_expression "(int)puVar12 + -0x14" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xe724b")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void parse_section_start(General_options * this, char * param_1, char *
   arg, Command_line * param_3) */

void __thiscall
gold::General_options::parse_section_start
          (General_options *this,char *param_1,char *arg,Command_line *param_3)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  byte *pbVar2;
  byte bVar3;
  _Base_ptr p_Var4;
  uint uVar5;
  _Alloc_hider __s2;
  char cVar6;
  difference_type __d;
  char *pcVar7;
  _Rb_tree_header *p_Var8;
  int iVar9;
  _Base_ptr p_Var10;
  uint uVar11;
  byte *pbVar12;
  _Base_ptr p_Var13;
  pointer local_58;
  _Base_ptr local_54;
  _Base_ptr local_4c;
  _Base_ptr local_48;
  _Base_ptr local_40 [2];
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *local_38;
  string section_name;
  
  pcVar7 = strchr(arg,0x3d);
  if (pcVar7 == (char *)0x0) {
    pcVar7 = (char *)gettext("invalid argument to --section-start; must be SECTION=ADDRESS");
    gold_error(pcVar7);
    return;
  }
  paVar1 = &section_name.field_2;
  pbVar2 = (byte *)(pcVar7 + 1);
  section_name._M_dataplus._M_p = (pointer)paVar1;
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&section_name,arg,pcVar7,0);
  cVar6 = pcVar7[1];
  pbVar12 = pbVar2;
  if (cVar6 == '0') {
    if ((pcVar7[2] & 0xdfU) == 0x58) {
      pbVar12 = (byte *)(pcVar7 + 3);
      cVar6 = pcVar7[3];
      goto LAB_000e70cd;
    }
LAB_000e70d5:
                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */
    hex_init();
    __s2 = section_name._M_dataplus;
    if (*pbVar12 == 0) {
      local_4c = (_Base_ptr)0x0;
      local_48 = (_Base_ptr)0x0;
LAB_000e7142:
      p_Var4 = (this->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;
      p_Var8 = &(this->section_starts_)._M_t._M_impl.super__Rb_tree_header;
      local_54 = &p_Var8->_M_header;
      if (p_Var4 == (_Base_ptr)0x0) {
LAB_000e72cd:
        local_38 = &section_name;
                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */
        std::
        _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>
        ::
        _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>
                  ((_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_long_long_unsigned_int>_>_>
                    *)local_40,(const_iterator)&this->section_starts_,
                   (piecewise_construct_t *)local_54,
                   (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>
                    *)&std::piecewise_construct,(tuple<> *)&local_38);
        local_54 = local_40[0];
        local_58 = section_name._M_dataplus._M_p;
      }
      else {
        local_58 = section_name._M_dataplus._M_p;
        do {
          while( true ) {
            p_Var13 = p_Var4;
            p_Var4 = p_Var13[1]._M_parent;
            p_Var10 = (_Base_ptr)section_name._M_string_length;
            if (p_Var4 <= section_name._M_string_length) {
              p_Var10 = p_Var4;
            }
            if ((p_Var10 == (_Base_ptr)0x0) ||
               (iVar9 = memcmp((void *)p_Var13[1]._M_color,__s2._M_p,(size_t)p_Var10), iVar9 == 0))
            {
              iVar9 = (int)p_Var4 - section_name._M_string_length;
            }
            if (iVar9 < 0) break;
            p_Var4 = p_Var13->_M_left;
            local_54 = p_Var13;
            if (p_Var13->_M_left == (_Base_ptr)0x0) goto LAB_000e71b2;
          }
          p_Var4 = p_Var13->_M_right;
        } while (p_Var13->_M_right != (_Base_ptr)0x0);
LAB_000e71b2:
        if (p_Var8 == (_Rb_tree_header *)local_54) goto LAB_000e72cd;
        p_Var4 = local_54[1]._M_parent;
        p_Var10 = (_Base_ptr)section_name._M_string_length;
        if (p_Var4 < section_name._M_string_length) {
          p_Var10 = p_Var4;
        }
        if ((p_Var10 == (_Base_ptr)0x0) ||
           (iVar9 = memcmp(__s2._M_p,(void *)local_54[1]._M_color,(size_t)p_Var10), iVar9 == 0)) {
          iVar9 = section_name._M_string_length - (int)p_Var4;
        }
        if (iVar9 < 0) goto LAB_000e72cd;
      }
      local_54[2]._M_left = local_4c;
      local_54[2]._M_right = local_48;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)local_58 == paVar1) {
        return;
      }
      goto LAB_000e723f;
    }
    bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];
    if (bVar3 != 99) {
      local_4c = (_Base_ptr)0x0;
      local_48 = (_Base_ptr)0x0;
      do {
        uVar5 = (uint)local_4c >> 0x1c;
        uVar11 = (int)local_4c * 0x10;
        local_4c = (_Base_ptr)(uVar11 + bVar3);
        local_48 = (_Base_ptr)(((int)local_48 << 4 | uVar5) + (uint)CARRY4(uVar11,(uint)bVar3));
        pbVar12 = pbVar12 + 1;
        if (*pbVar12 == 0) goto LAB_000e7142;
        bVar3 = "cccccccccccccccccccccccccccccccccccccccccccccccc"[*pbVar12];
      } while (bVar3 != 99);
    }
    pcVar7 = (char *)gettext("--section-start argument %s is not a valid hex number");
    gold_error(pcVar7,pbVar2);
  }
  else {
LAB_000e70cd:
    if (cVar6 != '\0') goto LAB_000e70d5;
    pcVar7 = (char *)gettext("--section-start address missing");
    gold_error(pcVar7);
  }
  local_58 = section_name._M_dataplus._M_p;
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)section_name._M_dataplus._M_p == paVar1) {
    return;
  }
LAB_000e723f:
  operator_delete(local_58);
  return;
}


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

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

void MASKED(int param_1,undefined4 param_2,char *param_3)

{
  byte *pbVar1;
  byte bVar2;
  undefined **ppuVar3;
  uint uVar4;
  char cVar5;
  char *pcVar6;
  int iVar7;
  undefined **ppuVar8;
  undefined1 *puVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 *puVar12;
  byte *pbVar13;
  int iVar14;
  undefined4 uStack_70;
  undefined1 auStack_6c [8];
  int local_64;
  undefined1 **local_60;
  undefined1 *local_5c;
  undefined1 *local_58;
  int local_54;
  undefined **local_50;
  uint local_4c;
  int local_48;
  undefined **local_44;
  int local_40;
  undefined1 local_39;
  undefined1 **local_38;
  undefined1 *local_34;
  undefined **local_30;
  undefined1 local_2c [28];
  
  local_44 = &__DT_PLTGOT;
  pcVar6 = strchr(param_3,0x3d);
  if (pcVar6 == (char *)0x0) {
    uVar10 = gettext(local_44 + -0x3f6ef);
    FUN_000654b0(uVar10);
    return;
  }
  local_60 = &local_34;
  uStack_70 = 0;
  local_5c = local_2c;
  pbVar1 = (byte *)(pcVar6 + 1);
  local_34 = local_5c;
  FUN_00050e40(local_60,param_3,pcVar6);
  cVar5 = pcVar6[1];
  puVar12 = (undefined4 *)auStack_6c;
  pbVar13 = pbVar1;
  if (cVar5 == '0') {
    if ((pcVar6[2] & 0xdfU) == 0x58) {
      pbVar13 = (byte *)(pcVar6 + 3);
      cVar5 = pcVar6[3];
      goto LAB_000e70cd;
    }
LAB_000e70d5:
                    /* try { // try from 000e70d8 to 000e727c has its CatchHandler @ 000e7324 */
    uStack_70 = 0xe70dd;
    FUN_001e42c0();
    if (*pbVar13 == 0) {
      local_4c = 0;
      local_48 = 0;
LAB_000e7142:
      local_64 = param_1 + 0x5a5c;
      local_54 = local_64;
      if (*(int *)(param_1 + 0x5a60) == 0) {
LAB_000e72cd:
        local_38 = local_60;
                    /* try { // try from 000e72f8 to 000e72fc has its CatchHandler @ 000e7324 */
        FUN_000ebf30(&local_40,param_1 + 0x5a58,local_54,local_44 + -0x3f5b4,&local_38,&local_39);
        local_54 = local_40;
        puVar12 = &uStack_70;
        local_58 = local_34;
      }
      else {
        local_58 = local_34;
        local_50 = local_30;
        iVar7 = *(int *)(param_1 + 0x5a60);
        local_54 = local_64;
        do {
          while( true ) {
            iVar14 = iVar7;
            ppuVar3 = *(undefined ***)(iVar14 + 0x14);
            ppuVar8 = local_50;
            if (ppuVar3 <= local_50) {
              ppuVar8 = ppuVar3;
            }
            if ((ppuVar8 == (undefined **)0x0) ||
               (iVar7 = memcmp(*(void **)(iVar14 + 0x10),local_58,(size_t)ppuVar8), iVar7 == 0)) {
              iVar7 = (int)ppuVar3 - (int)local_50;
            }
            if (iVar7 < 0) break;
            iVar7 = *(int *)(iVar14 + 8);
            local_54 = iVar14;
            if (*(int *)(iVar14 + 8) == 0) goto LAB_000e71b2;
          }
          iVar7 = *(int *)(iVar14 + 0xc);
        } while (*(int *)(iVar14 + 0xc) != 0);
LAB_000e71b2:
        if (local_64 == local_54) goto LAB_000e72cd;
        ppuVar3 = *(undefined ***)(local_54 + 0x14);
        ppuVar8 = local_50;
        if (ppuVar3 < local_50) {
          ppuVar8 = ppuVar3;
        }
        if ((ppuVar8 == (undefined **)0x0) ||
           (iVar7 = memcmp(local_58,*(void **)(local_54 + 0x10),(size_t)ppuVar8), iVar7 == 0)) {
          iVar7 = (int)local_50 - (int)ppuVar3;
        }
        if (iVar7 < 0) goto LAB_000e72cd;
      }
      *(uint *)(local_54 + 0x28) = local_4c;
      *(int *)(local_54 + 0x2c) = local_48;
      puVar9 = local_58;
      if (local_58 == local_5c) {
        return;
      }
      goto LAB_000e723f;
    }
    local_50 = local_44 + -0x3b008;
    bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);
    if (bVar2 != 99) {
      local_4c = 0;
      local_48 = 0;
      do {
        uVar4 = local_4c >> 0x1c;
        uVar11 = local_4c * 0x10;
        local_4c = uVar11 + bVar2;
        local_48 = (local_48 << 4 | uVar4) + (uint)CARRY4(uVar11,(uint)bVar2);
        pbVar13 = pbVar13 + 1;
        if (*pbVar13 == 0) goto LAB_000e7142;
        bVar2 = *(byte *)((int)local_50 + (uint)*pbVar13);
      } while (bVar2 != 99);
    }
    uVar10 = gettext(local_44 + -0x3f6d7);
    FUN_000654b0(uVar10,pbVar1);
  }
  else {
LAB_000e70cd:
    if (cVar5 != '\0') goto LAB_000e70d5;
    uVar10 = gettext(local_44 + -0x3f6df);
    FUN_000654b0(uVar10);
  }
  puVar12 = (undefined4 *)auStack_6c;
  puVar9 = local_34;
  if (local_34 == local_5c) {
    return;
  }
LAB_000e723f:
  *(undefined1 **)((int)puVar12 + -0x10) = puVar9;
  *(undefined4 *)((int)puVar12 + -0x14) = 0xe724b;
  FUN_001e6db0();
  return;
}

