
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: bool find_place(Orphan_section_placement * this, Output_section * os,
   Elements_iterator * * pwhere) */

bool __thiscall
gold::Orphan_section_placement::find_place
          (Orphan_section_placement *this,Output_section *os,Elements_iterator **pwhere)

{
  Elf_Word EVar1;
  _List_node_base *p_Var2;
  Elf_Xword EVar3;
  char cVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  byte *pbVar8;
  byte *pbVar9;
  byte *pbVar10;
  bool bVar11;
  bool bVar12;
  bool bVar13;
  
  EVar3 = os->flags_;
  bVar11 = false;
  bVar13 = (EVar3 & 2) == 0;
  if (bVar13) {
    pbVar9 = (byte *)os->name_;
    iVar6 = 6;
    pbVar8 = pbVar9;
    pbVar10 = (byte *)".debug";
    do {
      if (iVar6 == 0) break;
      iVar6 = iVar6 + -1;
      bVar11 = *pbVar8 < *pbVar10;
      bVar13 = *pbVar8 == *pbVar10;
      pbVar8 = pbVar8 + 1;
      pbVar10 = pbVar10 + 1;
    } while (bVar13);
    bVar12 = false;
    bVar11 = (!bVar11 && !bVar13) == bVar11;
    if (!bVar11) {
      iVar6 = 7;
      pbVar8 = pbVar9;
      pbVar10 = &DAT_0028a537;
      do {
        if (iVar6 == 0) break;
        iVar6 = iVar6 + -1;
        bVar12 = *pbVar8 < *pbVar10;
        bVar11 = *pbVar8 == *pbVar10;
        pbVar8 = pbVar8 + 1;
        pbVar10 = pbVar10 + 1;
      } while (bVar11);
      bVar13 = false;
      bVar11 = (!bVar12 && !bVar11) == bVar12;
      if (!bVar11) {
        iVar6 = 0x11;
        pbVar8 = pbVar9;
        pbVar10 = (byte *)".gnu.linkonce.wi.";
        do {
          if (iVar6 == 0) break;
          iVar6 = iVar6 + -1;
          bVar13 = *pbVar8 < *pbVar10;
          bVar11 = *pbVar8 == *pbVar10;
          pbVar8 = pbVar8 + 1;
          pbVar10 = pbVar10 + 1;
        } while (bVar11);
        bVar12 = false;
        bVar11 = (!bVar13 && !bVar11) == bVar13;
        if (!bVar11) {
          iVar6 = 5;
          pbVar8 = pbVar9;
          pbVar10 = (byte *)".line";
          do {
            if (iVar6 == 0) break;
            iVar6 = iVar6 + -1;
            bVar12 = *pbVar8 < *pbVar10;
            bVar11 = *pbVar8 == *pbVar10;
            pbVar8 = pbVar8 + 1;
            pbVar10 = pbVar10 + 1;
          } while (bVar11);
          bVar13 = false;
          bVar11 = (!bVar12 && !bVar11) == bVar12;
          if (!bVar11) {
            iVar6 = 5;
            pbVar8 = pbVar9;
            pbVar10 = (byte *)".stab";
            do {
              if (iVar6 == 0) break;
              iVar6 = iVar6 + -1;
              bVar13 = *pbVar8 < *pbVar10;
              bVar11 = *pbVar8 == *pbVar10;
              pbVar8 = pbVar8 + 1;
              pbVar10 = pbVar10 + 1;
            } while (bVar11);
            bVar12 = false;
            bVar11 = (!bVar13 && !bVar11) == bVar13;
            if (!bVar11) {
              iVar6 = 4;
              pbVar8 = &DAT_0028b18e;
              do {
                if (iVar6 == 0) break;
                iVar6 = iVar6 + -1;
                bVar12 = *pbVar9 < *pbVar8;
                bVar11 = *pbVar9 == *pbVar8;
                pbVar9 = pbVar9 + 1;
                pbVar8 = pbVar8 + 1;
              } while (bVar11);
              if ((!bVar12 && !bVar11) != bVar12) {
                cVar4 = this->places_[9].have_location;
                iVar6 = 0x74;
                iVar7 = 9;
                goto LAB_0015b323;
              }
            }
          }
        }
      }
    }
    cVar4 = this->places_[10].have_location;
    iVar6 = 0x80;
    iVar7 = 10;
    goto LAB_0015b323;
  }
  EVar1 = os->type_;
  if (EVar1 == 7) {
    cVar4 = this->places_[8].have_location;
    iVar6 = 0x68;
    iVar7 = 8;
    if ((bool)cVar4 != false) goto LAB_0015b323;
    uVar5 = 0;
    iVar7 = 8;
LAB_0015b359:
    if (this->places_[uVar5].have_location == false) {
      cVar4 = this->places_[iVar7].have_location;
      goto LAB_0015b323;
    }
  }
  else {
    if ((EVar3 & 0x400) == 0) {
      if (EVar1 == 8) {
        cVar4 = this->places_[5].have_location;
        iVar6 = 0x44;
        iVar7 = 5;
        if ((bool)cVar4 != false) goto LAB_0015b323;
        uVar5 = 6;
        iVar7 = 5;
      }
      else if ((EVar3 & 1) == 0) {
        if ((EVar1 == 9) || (EVar1 == 4)) {
          cVar4 = this->places_[7].have_location;
          iVar6 = 0x5c;
          iVar7 = 7;
          if ((bool)cVar4 != false) goto LAB_0015b323;
          uVar5 = 0;
          iVar7 = 7;
        }
        else {
          if ((EVar3 & 4) != 0) {
            cVar4 = this->places_[0].have_location;
            iVar6 = 8;
            iVar7 = 0;
            goto LAB_0015b323;
          }
          cVar4 = this->places_[1].have_location;
          iVar6 = 0x14;
          iVar7 = 1;
          if ((bool)cVar4 != false) goto LAB_0015b323;
          uVar5 = 0;
          iVar7 = 1;
        }
      }
      else {
        cVar4 = this->places_[2].have_location;
        if ((bool)cVar4 != false) {
          iVar6 = 0x20;
          iVar7 = 2;
          goto LAB_0015b323;
        }
        uVar5 = (uint)this->places_[1].have_location;
        iVar6 = 0x20;
        iVar7 = 2;
      }
      goto LAB_0015b359;
    }
    if (EVar1 != 8) {
      cVar4 = this->places_[3].have_location;
      iVar6 = 0x2c;
      iVar7 = 3;
      if ((bool)cVar4 != false) goto LAB_0015b323;
      uVar5 = 2;
      iVar7 = 3;
      goto LAB_0015b359;
    }
    cVar4 = this->places_[4].have_location;
    if ((bool)cVar4 != false) {
      iVar6 = 0x38;
      iVar7 = 4;
      goto LAB_0015b323;
    }
    iVar6 = 0x38;
    if (this->places_[3].have_location == false) {
      uVar5 = 2;
      iVar7 = 4;
      goto LAB_0015b359;
    }
    iVar7 = 4;
    uVar5 = 3;
  }
  p_Var2 = this->places_[uVar5].location._M_node;
  this->places_[iVar7].have_location = true;
  this->places_[iVar7].location._M_node = p_Var2;
  cVar4 = '\x01';
LAB_0015b323:
  *pwhere = (Elements_iterator *)((int)&this->places_[0].name + iVar6);
  this->places_[iVar7].have_location = true;
  return (bool)cVar4;
}



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

char FUN_0015b280(int param_1,int param_2,int *param_3)

{
  int iVar1;
  undefined4 uVar2;
  char cVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte *pbVar9;
  bool bVar10;
  bool bVar11;
  bool bVar12;
  
  uVar4 = *(uint *)(param_2 + 0x54);
  bVar10 = false;
  bVar12 = (uVar4 & 2) == 0;
  if (bVar12) {
    pbVar8 = *(byte **)(param_2 + 0x20);
    iVar5 = 6;
    pbVar7 = pbVar8;
    pbVar9 = (byte *)".debug";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar10 = *pbVar7 < *pbVar9;
      bVar12 = *pbVar7 == *pbVar9;
      pbVar7 = pbVar7 + 1;
      pbVar9 = pbVar9 + 1;
    } while (bVar12);
    bVar11 = false;
    bVar10 = (!bVar10 && !bVar12) == bVar10;
    if (!bVar10) {
      iVar5 = 7;
      pbVar7 = pbVar8;
      pbVar9 = &DAT_0028a537;
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        bVar11 = *pbVar7 < *pbVar9;
        bVar10 = *pbVar7 == *pbVar9;
        pbVar7 = pbVar7 + 1;
        pbVar9 = pbVar9 + 1;
      } while (bVar10);
      bVar12 = false;
      bVar10 = (!bVar11 && !bVar10) == bVar11;
      if (!bVar10) {
        iVar5 = 0x11;
        pbVar7 = pbVar8;
        pbVar9 = (byte *)".gnu.linkonce.wi.";
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar12 = *pbVar7 < *pbVar9;
          bVar10 = *pbVar7 == *pbVar9;
          pbVar7 = pbVar7 + 1;
          pbVar9 = pbVar9 + 1;
        } while (bVar10);
        bVar11 = false;
        bVar10 = (!bVar12 && !bVar10) == bVar12;
        if (!bVar10) {
          iVar5 = 5;
          pbVar7 = pbVar8;
          pbVar9 = (byte *)".line";
          do {
            if (iVar5 == 0) break;
            iVar5 = iVar5 + -1;
            bVar11 = *pbVar7 < *pbVar9;
            bVar10 = *pbVar7 == *pbVar9;
            pbVar7 = pbVar7 + 1;
            pbVar9 = pbVar9 + 1;
          } while (bVar10);
          bVar12 = false;
          bVar10 = (!bVar11 && !bVar10) == bVar11;
          if (!bVar10) {
            iVar5 = 5;
            pbVar7 = pbVar8;
            pbVar9 = (byte *)".stab";
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar12 = *pbVar7 < *pbVar9;
              bVar10 = *pbVar7 == *pbVar9;
              pbVar7 = pbVar7 + 1;
              pbVar9 = pbVar9 + 1;
            } while (bVar10);
            bVar11 = false;
            bVar10 = (!bVar12 && !bVar10) == bVar12;
            if (!bVar10) {
              iVar5 = 4;
              pbVar7 = &DAT_0028b18e;
              do {
                if (iVar5 == 0) break;
                iVar5 = iVar5 + -1;
                bVar11 = *pbVar8 < *pbVar7;
                bVar10 = *pbVar8 == *pbVar7;
                pbVar8 = pbVar8 + 1;
                pbVar7 = pbVar7 + 1;
              } while (bVar10);
              if ((!bVar11 && !bVar10) != bVar11) {
                cVar3 = *(char *)(param_1 + 0x70);
                iVar5 = 0x74;
                iVar6 = 9;
                goto LAB_0015b323;
              }
            }
          }
        }
      }
    }
    cVar3 = *(char *)(param_1 + 0x7c);
    iVar5 = 0x80;
    iVar6 = 10;
    goto LAB_0015b323;
  }
  iVar5 = *(int *)(param_2 + 0x50);
  if (iVar5 == 7) {
    cVar3 = *(char *)(param_1 + 100);
    iVar5 = 0x68;
    iVar6 = 8;
    if (cVar3 != '\0') goto LAB_0015b323;
    uVar4 = 0;
    iVar6 = 8;
LAB_0015b359:
    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {
      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);
      goto LAB_0015b323;
    }
  }
  else {
    if ((uVar4 & 0x400) == 0) {
      if (iVar5 == 8) {
        cVar3 = *(char *)(param_1 + 0x40);
        iVar5 = 0x44;
        iVar6 = 5;
        if (cVar3 != '\0') goto LAB_0015b323;
        uVar4 = 6;
        iVar6 = 5;
      }
      else if ((uVar4 & 1) == 0) {
        if ((iVar5 == 9) || (iVar5 == 4)) {
          cVar3 = *(char *)(param_1 + 0x58);
          iVar5 = 0x5c;
          iVar6 = 7;
          if (cVar3 != '\0') goto LAB_0015b323;
          uVar4 = 0;
          iVar6 = 7;
        }
        else {
          if ((uVar4 & 4) != 0) {
            cVar3 = *(char *)(param_1 + 4);
            iVar5 = 8;
            iVar6 = 0;
            goto LAB_0015b323;
          }
          cVar3 = *(char *)(param_1 + 0x10);
          iVar5 = 0x14;
          iVar6 = 1;
          if (cVar3 != '\0') goto LAB_0015b323;
          uVar4 = 0;
          iVar6 = 1;
        }
      }
      else {
        cVar3 = *(char *)(param_1 + 0x1c);
        if (cVar3 != '\0') {
          iVar5 = 0x20;
          iVar6 = 2;
          goto LAB_0015b323;
        }
        uVar4 = (uint)*(byte *)(param_1 + 0x10);
        iVar5 = 0x20;
        iVar6 = 2;
      }
      goto LAB_0015b359;
    }
    if (iVar5 != 8) {
      cVar3 = *(char *)(param_1 + 0x28);
      iVar5 = 0x2c;
      iVar6 = 3;
      if (cVar3 != '\0') goto LAB_0015b323;
      uVar4 = 2;
      iVar6 = 3;
      goto LAB_0015b359;
    }
    cVar3 = *(char *)(param_1 + 0x34);
    if (cVar3 != '\0') {
      iVar5 = 0x38;
      iVar6 = 4;
      goto LAB_0015b323;
    }
    iVar5 = 0x38;
    if (*(char *)(param_1 + 0x28) == '\0') {
      uVar4 = 2;
      iVar6 = 4;
      goto LAB_0015b359;
    }
    iVar6 = 4;
    uVar4 = 3;
  }
  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);
  iVar1 = param_1 + iVar6 * 0xc;
  *(undefined1 *)(iVar1 + 4) = 1;
  *(undefined4 *)(iVar1 + 8) = uVar2;
  cVar3 = '\x01';
LAB_0015b323:
  *param_3 = iVar5 + param_1;
  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;
  return cVar3;
}


CALL 0x000559e6
ADD EAX,0x233d7b
PUSH EDI
PUSH ESI
PUSH EBX
MOV ECX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [ESP + 0x10]
MOV EBX,dword ptr [ECX + 0x54]
TEST BL,0x2
JZ 0x0015b2e0
MOV EAX,dword ptr [ECX + 0x50]
CMP EAX,0x7
JZ 0x0015b340
TEST BH,0x4
JZ 0x0015b400
CMP EAX,0x8
JZ 0x0015b4a8
MOVZX EAX,byte ptr [EDX + 0x28]
MOV ECX,0x2c
MOV EBX,0x3
TEST AL,AL
JNZ 0x0015b323
MOV EAX,0x2
MOV EBX,0x3
JMP 0x0015b359
MOV EBX,dword ptr [ECX + 0x20]
LEA EDI,[EAX + 0xffefb638]
MOV ECX,0x6
MOV ESI,EBX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0015b315
MOV ECX,0x7
LEA EDI,[EAX + 0xffefb537]
MOV ESI,EBX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0015b378
MOVZX EAX,byte ptr [EDX + 0x7c]
MOV ECX,0x80
MOV EBX,0xa
MOV ESI,dword ptr [ESP + 0x18]
ADD ECX,EDX
MOV dword ptr [ESI],ECX
LEA ECX,[EBX + EBX*0x2]
MOV byte ptr [EDX + ECX*0x4 + 0x4],0x1
POP EBX
POP ESI
POP EDI
RET
MOVZX EAX,byte ptr [EDX + 0x64]
MOV ECX,0x68
MOV EBX,0x8
TEST AL,AL
JNZ 0x0015b323
XOR EAX,EAX
MOV EBX,0x8
LEA ESI,[EAX + EAX*0x2]
CMP byte ptr [EDX + ESI*0x4 + 0x4],0x0
JNZ 0x0015b450
LEA EAX,[EBX + EBX*0x2]
MOVZX EAX,byte ptr [EDX + EAX*0x4 + 0x4]
JMP 0x0015b323
MOV ECX,0x11
LEA EDI,[EAX + 0xffefc176]
MOV ESI,EBX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0015b315
MOV ECX,0x5
LEA EDI,[EAX + 0xffefc188]
MOV ESI,EBX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0015b315
MOV ECX,0x5
LEA EDI,[EAX + 0xffefb673]
MOV ESI,EBX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0015b315
LEA EDI,[EAX + 0xffefc18e]
MOV ECX,0x4
MOV ESI,EBX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0015b315
MOVZX EAX,byte ptr [EDX + 0x70]
MOV ECX,0x74
MOV EBX,0x9
JMP 0x0015b323
CMP EAX,0x8
JZ 0x0015b4e0
TEST BL,0x1
JNZ 0x0015b470
CMP EAX,0x9
JZ 0x0015b508
CMP EAX,0x4
JZ 0x0015b508
AND EBX,0x4
JZ 0x0015b530
MOVZX EAX,byte ptr [EDX + 0x4]
MOV ECX,0x8
XOR EBX,EBX
JMP 0x0015b323
MOV EBX,0x4
MOV EAX,0x3
LEA ESI,[ESI]
LEA EAX,[EAX + EAX*0x2]
LEA ESI,[EBX + EBX*0x2]
MOV EAX,dword ptr [EDX + EAX*0x4 + 0x8]
LEA ESI,[EDX + ESI*0x4]
MOV byte ptr [ESI + 0x4],0x1
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,0x1
JMP 0x0015b323
MOVZX EAX,byte ptr [EDX + 0x1c]
TEST AL,AL
JZ 0x0015b490
MOV ECX,0x20
MOV EBX,0x2
JMP 0x0015b323
MOVZX EAX,byte ptr [EDX + 0x10]
MOV ECX,0x20
MOV EBX,0x2
JMP 0x0015b359
MOVZX EAX,byte ptr [EDX + 0x34]
TEST AL,AL
JZ 0x0015b4c0
MOV ECX,0x38
MOV EBX,0x4
JMP 0x0015b323
CMP byte ptr [EDX + 0x28],0x0
MOV ECX,0x38
JNZ 0x0015b440
MOV EAX,0x2
MOV EBX,0x4
JMP 0x0015b359
MOVZX EAX,byte ptr [EDX + 0x40]
MOV ECX,0x44
MOV EBX,0x5
TEST AL,AL
JNZ 0x0015b323
MOV EAX,0x6
MOV EBX,0x5
JMP 0x0015b359
MOVZX EAX,byte ptr [EDX + 0x58]
MOV ECX,0x5c
MOV EBX,0x7
TEST AL,AL
JNZ 0x0015b323
XOR EAX,EAX
MOV EBX,0x7
JMP 0x0015b359
MOVZX EAX,byte ptr [EDX + 0x10]
MOV ECX,0x14
MOV EBX,0x1
TEST AL,AL
JNZ 0x0015b323
XOR EAX,EAX
MOV EBX,0x1
JMP 0x0015b359
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nchar FUN_0015b280(int param_1,int param_2,int *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  \n  uVar4 = *(uint *)(param_2 + 0x54);\n  bVar10 = false;\n  bVar12 = (uVar4 & 2) == 0;\n  if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }\n  iVar5 = *(int *)(param_2 + 0x50);\n  if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }\n  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);\n  iVar1 = param_1 + iVar6 * 0xc;\n  *(undefined1 *)(iVar1 + 4) = 1;\n  *(undefined4 *)(iVar1 + 8) = uVar2;\n  cVar3 = '\x01';\nLAB_0015b323:\n  *param_3 = iVar5 + param_1;\n  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;\n  return cVar3;\n}\n\n" comment (function_definition "char FUN_0015b280(int param_1,int param_2,int *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  \n  uVar4 = *(uint *)(param_2 + 0x54);\n  bVar10 = false;\n  bVar12 = (uVar4 & 2) == 0;\n  if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }\n  iVar5 = *(int *)(param_2 + 0x50);\n  if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }\n  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);\n  iVar1 = param_1 + iVar6 * 0xc;\n  *(undefined1 *)(iVar1 + 4) = 1;\n  *(undefined4 *)(iVar1 + 8) = uVar2;\n  cVar3 = '\x01';\nLAB_0015b323:\n  *param_3 = iVar5 + param_1;\n  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;\n  return cVar3;\n}" primitive_type (function_declarator "FUN_0015b280(int param_1,int param_2,int *param_3)" identifier (parameter_list "(int param_1,int param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  \n  uVar4 = *(uint *)(param_2 + 0x54);\n  bVar10 = false;\n  bVar12 = (uVar4 & 2) == 0;\n  if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }\n  iVar5 = *(int *)(param_2 + 0x50);\n  if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }\n  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);\n  iVar1 = param_1 + iVar6 * 0xc;\n  *(undefined1 *)(iVar1 + 4) = 1;\n  *(undefined4 *)(iVar1 + 8) = uVar2;\n  cVar3 = '\x01';\nLAB_0015b323:\n  *param_3 = iVar5 + param_1;\n  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;\n  return cVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (expression_statement "uVar4 = *(uint *)(param_2 + 0x54);" (assignment_expression "uVar4 = *(uint *)(param_2 + 0x54)" identifier = (pointer_expression "*(uint *)(param_2 + 0x54)" * (cast_expression "(uint *)(param_2 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar12 = (uVar4 & 2) == 0;" (assignment_expression "bVar12 = (uVar4 & 2) == 0" identifier = (binary_expression "(uVar4 & 2) == 0" (parenthesized_expression "(uVar4 & 2)" ( (binary_expression "uVar4 & 2" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }" { (expression_statement "pbVar8 = *(byte **)(param_2 + 0x20);" (assignment_expression "pbVar8 = *(byte **)(param_2 + 0x20)" identifier = (pointer_expression "*(byte **)(param_2 + 0x20)" * (cast_expression "(byte **)(param_2 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)".debug";" (assignment_expression "pbVar9 = (byte *)".debug"" identifier = (cast_expression "(byte *)".debug"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug"" " string_content "))) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar7 < *pbVar9;" (assignment_expression "bVar10 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar12 = *pbVar7 == *pbVar9;" (assignment_expression "bVar12 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar10 && !bVar12) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar12) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar12) == bVar10" (parenthesized_expression "(!bVar10 && !bVar12)" ( (binary_expression "!bVar10 && !bVar12" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = &DAT_0028a537;" (assignment_expression "pbVar9 = &DAT_0028a537" identifier = (pointer_expression "&DAT_0028a537" & identifier)) ;) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar7 < *pbVar9;" (assignment_expression "bVar11 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar11 && !bVar10) == bVar11;" (assignment_expression "bVar10 = (!bVar11 && !bVar10) == bVar11" identifier = (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)".gnu.linkonce.wi.";" (assignment_expression "pbVar9 = (byte *)".gnu.linkonce.wi."" identifier = (cast_expression "(byte *)".gnu.linkonce.wi."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.wi."" " string_content "))) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar7 < *pbVar9;" (assignment_expression "bVar12 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar12 && !bVar10) == bVar12;" (assignment_expression "bVar10 = (!bVar12 && !bVar10) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar10) == bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" ( (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }" { (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)".line";" (assignment_expression "pbVar9 = (byte *)".line"" identifier = (cast_expression "(byte *)".line"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".line"" " string_content "))) ;) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);" do (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar7 < *pbVar9;" (assignment_expression "bVar11 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar11 && !bVar10) == bVar11;" (assignment_expression "bVar10 = (!bVar11 && !bVar10) == bVar11" identifier = (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }" { (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)".stab";" (assignment_expression "pbVar9 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar7 < *pbVar9;" (assignment_expression "bVar12 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar12 && !bVar10) == bVar12;" (assignment_expression "bVar10 = (!bVar12 && !bVar10) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar10) == bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" ( (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }" { (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar7 = &DAT_0028b18e;" (assignment_expression "pbVar7 = &DAT_0028b18e" identifier = (pointer_expression "&DAT_0028b18e" & identifier)) ;) (do_statement "do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);" do (compound_statement "{\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar8 < *pbVar7;" (assignment_expression "bVar11 = *pbVar8 < *pbVar7" identifier = (binary_expression "*pbVar8 < *pbVar7" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar10 = *pbVar8 == *pbVar7;" (assignment_expression "bVar10 = *pbVar8 == *pbVar7" identifier = (binary_expression "*pbVar8 == *pbVar7" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }" if (parenthesized_expression "((!bVar11 && !bVar10) != bVar11)" ( (binary_expression "(!bVar11 && !bVar10) != bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) != identifier) )) (compound_statement "{\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x70);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x70)" identifier = (pointer_expression "*(char *)(param_1 + 0x70)" * (cast_expression "(char *)(param_1 + 0x70)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x74;" (assignment_expression "iVar5 = 0x74" identifier = number_literal) ;) (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) })) })) })) })) })) (expression_statement "cVar3 = *(char *)(param_1 + 0x7c);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x7c)" identifier = (pointer_expression "*(char *)(param_1 + 0x7c)" * (cast_expression "(char *)(param_1 + 0x7c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x80;" (assignment_expression "iVar5 = 0x80" identifier = number_literal) ;) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "iVar5 = *(int *)(param_2 + 0x50);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x50)" identifier = (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }" { (expression_statement "cVar3 = *(char *)(param_1 + 100);" (assignment_expression "cVar3 = *(char *)(param_1 + 100)" identifier = (pointer_expression "*(char *)(param_1 + 100)" * (cast_expression "(char *)(param_1 + 100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x68;" (assignment_expression "iVar5 = 0x68" identifier = number_literal) ;) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }" statement_identifier : (if_statement "if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0')" ( (binary_expression "*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0'" (pointer_expression "*(char *)(param_1 + 4 + uVar4 * 0xc)" * (cast_expression "(char *)(param_1 + 4 + uVar4 * 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4 + uVar4 * 0xc)" ( (binary_expression "param_1 + 4 + uVar4 * 0xc" (binary_expression "param_1 + 4" identifier + number_literal) + (binary_expression "uVar4 * 0xc" identifier * number_literal)) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }" { (expression_statement "cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);" (assignment_expression "cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc)" identifier = (pointer_expression "*(char *)(param_1 + 4 + iVar6 * 0xc)" * (cast_expression "(char *)(param_1 + 4 + iVar6 * 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4 + iVar6 * 0xc)" ( (binary_expression "param_1 + 4 + iVar6 * 0xc" (binary_expression "param_1 + 4" identifier + number_literal) + (binary_expression "iVar6 * 0xc" identifier * number_literal)) ))))) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) }))) }) (else_clause "else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }" else (compound_statement "{\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }" { (if_statement "if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }" if (parenthesized_expression "((uVar4 & 0x400) == 0)" ( (binary_expression "(uVar4 & 0x400) == 0" (parenthesized_expression "(uVar4 & 0x400)" ( (binary_expression "uVar4 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }" { (if_statement "if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" if (parenthesized_expression "(iVar5 == 8)" ( (binary_expression "iVar5 == 8" identifier == number_literal) )) (compound_statement "{\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x40);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x40)" identifier = (pointer_expression "*(char *)(param_1 + 0x40)" * (cast_expression "(char *)(param_1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x44;" (assignment_expression "iVar5 = 0x44" identifier = number_literal) ;) (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 6;" (assignment_expression "uVar4 = 6" identifier = number_literal) ;) (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" identifier = number_literal) ;) }) (else_clause "else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" else (if_statement "if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" if (parenthesized_expression "((uVar4 & 1) == 0)" ( (binary_expression "(uVar4 & 1) == 0" (parenthesized_expression "(uVar4 & 1)" ( (binary_expression "uVar4 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }" { (if_statement "if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }" if (parenthesized_expression "((iVar5 == 9) || (iVar5 == 4))" ( (binary_expression "(iVar5 == 9) || (iVar5 == 4)" (parenthesized_expression "(iVar5 == 9)" ( (binary_expression "iVar5 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) ))) )) (compound_statement "{\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x58);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x58)" identifier = (pointer_expression "*(char *)(param_1 + 0x58)" * (cast_expression "(char *)(param_1 + 0x58)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x5c;" (assignment_expression "iVar5 = 0x5c" identifier = number_literal) ;) (expression_statement "iVar6 = 7;" (assignment_expression "iVar6 = 7" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 7;" (assignment_expression "iVar6 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }" else (compound_statement "{\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }" { (if_statement "if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }" if (parenthesized_expression "((uVar4 & 4) != 0)" ( (binary_expression "(uVar4 & 4) != 0" (parenthesized_expression "(uVar4 & 4)" ( (binary_expression "uVar4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }" { (expression_statement "cVar3 = *(char *)(param_1 + 4);" (assignment_expression "cVar3 = *(char *)(param_1 + 4)" identifier = (pointer_expression "*(char *)(param_1 + 4)" * (cast_expression "(char *)(param_1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "cVar3 = *(char *)(param_1 + 0x10);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x10)" identifier = (pointer_expression "*(char *)(param_1 + 0x10)" * (cast_expression "(char *)(param_1 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x14;" (assignment_expression "iVar5 = 0x14" identifier = number_literal) ;) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" else (compound_statement "{\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x1c);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x1c)" identifier = (pointer_expression "*(char *)(param_1 + 0x1c)" * (cast_expression "(char *)(param_1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }" { (expression_statement "iVar5 = 0x20;" (assignment_expression "iVar5 = 0x20" identifier = number_literal) ;) (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "uVar4 = (uint)*(byte *)(param_1 + 0x10);" (assignment_expression "uVar4 = (uint)*(byte *)(param_1 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(param_1 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x20;" (assignment_expression "iVar5 = 0x20" identifier = number_literal) ;) (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) }))))) (goto_statement "goto LAB_0015b359;" goto statement_identifier ;) })) (if_statement "if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }" if (parenthesized_expression "(iVar5 != 8)" ( (binary_expression "iVar5 != 8" identifier != number_literal) )) (compound_statement "{\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x28);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x28)" identifier = (pointer_expression "*(char *)(param_1 + 0x28)" * (cast_expression "(char *)(param_1 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "iVar6 = 3;" (assignment_expression "iVar6 = 3" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" identifier = number_literal) ;) (expression_statement "iVar6 = 3;" (assignment_expression "iVar6 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_0015b359;" goto statement_identifier ;) })) (expression_statement "cVar3 = *(char *)(param_1 + 0x34);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x34)" identifier = (pointer_expression "*(char *)(param_1 + 0x34)" * (cast_expression "(char *)(param_1 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }" { (expression_statement "iVar5 = 0x38;" (assignment_expression "iVar5 = 0x38" identifier = number_literal) ;) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0x38;" (assignment_expression "iVar5 = 0x38" identifier = number_literal) ;) (if_statement "if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x28) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x28) == '\0'" (pointer_expression "*(char *)(param_1 + 0x28)" * (cast_expression "(char *)(param_1 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }" { (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" identifier = number_literal) ;) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0015b359;" goto statement_identifier ;) })) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (expression_statement "uVar4 = 3;" (assignment_expression "uVar4 = 3" identifier = number_literal) ;) }))) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8 + uVar4 * 0xc)" * (cast_expression "(undefined4 *)(param_1 + 8 + uVar4 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8 + uVar4 * 0xc)" ( (binary_expression "param_1 + 8 + uVar4 * 0xc" (binary_expression "param_1 + 8" identifier + number_literal) + (binary_expression "uVar4 * 0xc" identifier * number_literal)) ))))) ;) (expression_statement "iVar1 = param_1 + iVar6 * 0xc;" (assignment_expression "iVar1 = param_1 + iVar6 * 0xc" identifier = (binary_expression "param_1 + iVar6 * 0xc" identifier + (binary_expression "iVar6 * 0xc" identifier * number_literal))) ;) (expression_statement "*(undefined1 *)(iVar1 + 4) = 1;" (assignment_expression "*(undefined1 *)(iVar1 + 4) = 1" (pointer_expression "*(undefined1 *)(iVar1 + 4)" * (cast_expression "(undefined1 *)(iVar1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (labeled_statement "LAB_0015b323:\n  *param_3 = iVar5 + param_1;" statement_identifier : (expression_statement "*param_3 = iVar5 + param_1;" (assignment_expression "*param_3 = iVar5 + param_1" (pointer_expression "*param_3" * identifier) = (binary_expression "iVar5 + param_1" identifier + identifier)) ;)) (expression_statement "*(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1" (pointer_expression "*(undefined1 *)(param_1 + 4 + iVar6 * 0xc)" * (cast_expression "(undefined1 *)(param_1 + 4 + iVar6 * 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4 + iVar6 * 0xc)" ( (binary_expression "param_1 + 4 + iVar6 * 0xc" (binary_expression "param_1 + 4" identifier + number_literal) + (binary_expression "iVar6 * 0xc" identifier * number_literal)) )))) = number_literal) ;) (return_statement "return cVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original prototype: bool find_place(Orphan_section_placement * this, Output_section * os,\n   Elements_iterator * * pwhere) */\n\nbool __thiscall\ngold::Orphan_section_placement::find_place\n          (Orphan_section_placement *this,Output_section *os,Elements_iterator **pwhere)\n\n{\n  Elf_Word EVar1;\n  _List_node_base *p_Var2;\n  Elf_Xword EVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  bool bVar13;\n  \n  EVar3 = os->flags_;\n  bVar11 = false;\n  bVar13 = (EVar3 & 2) == 0;\n  if (bVar13) {\n    pbVar9 = (byte *)os->name_;\n    iVar6 = 6;\n    pbVar8 = pbVar9;\n    pbVar10 = (byte *)".debug";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar13 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar13);\n    bVar12 = false;\n    bVar11 = (!bVar11 && !bVar13) == bVar11;\n    if (!bVar11) {\n      iVar6 = 7;\n      pbVar8 = pbVar9;\n      pbVar10 = &DAT_0028a537;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar8 < *pbVar10;\n        bVar11 = *pbVar8 == *pbVar10;\n        pbVar8 = pbVar8 + 1;\n        pbVar10 = pbVar10 + 1;\n      } while (bVar11);\n      bVar13 = false;\n      bVar11 = (!bVar12 && !bVar11) == bVar12;\n      if (!bVar11) {\n        iVar6 = 0x11;\n        pbVar8 = pbVar9;\n        pbVar10 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);\n        bVar12 = false;\n        bVar11 = (!bVar13 && !bVar11) == bVar13;\n        if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar4 = this->places_[10].have_location;\n    iVar6 = 0x80;\n    iVar7 = 10;\n    goto LAB_0015b323;\n  }\n  EVar1 = os->type_;\n  if (EVar1 == 7) {\n    cVar4 = this->places_[8].have_location;\n    iVar6 = 0x68;\n    iVar7 = 8;\n    if ((bool)cVar4 != false) goto LAB_0015b323;\n    uVar5 = 0;\n    iVar7 = 8;\nLAB_0015b359:\n    if (this->places_[uVar5].have_location == false) {\n      cVar4 = this->places_[iVar7].have_location;\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((EVar3 & 0x400) == 0) {\n      if (EVar1 == 8) {\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }\n      else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (EVar1 != 8) {\n      cVar4 = this->places_[3].have_location;\n      iVar6 = 0x2c;\n      iVar7 = 3;\n      if ((bool)cVar4 != false) goto LAB_0015b323;\n      uVar5 = 2;\n      iVar7 = 3;\n      goto LAB_0015b359;\n    }\n    cVar4 = this->places_[4].have_location;\n    if ((bool)cVar4 != false) {\n      iVar6 = 0x38;\n      iVar7 = 4;\n      goto LAB_0015b323;\n    }\n    iVar6 = 0x38;\n    if (this->places_[3].have_location == false) {\n      uVar5 = 2;\n      iVar7 = 4;\n      goto LAB_0015b359;\n    }\n    iVar7 = 4;\n    uVar5 = 3;\n  }\n  p_Var2 = this->places_[uVar5].location._M_node;\n  this->places_[iVar7].have_location = true;\n  this->places_[iVar7].location._M_node = p_Var2;\n  cVar4 = '\x01';\nLAB_0015b323:\n  *pwhere = (Elements_iterator *)((int)&this->places_[0].name + iVar6);\n  this->places_[iVar7].have_location = true;\n  return (bool)cVar4;\n}\n\n" comment comment (function_definition "bool __thiscall\ngold::Orphan_section_placement::find_place\n          (Orphan_section_placement *this,Output_section *os,Elements_iterator **pwhere)\n\n{\n  Elf_Word EVar1;\n  _List_node_base *p_Var2;\n  Elf_Xword EVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  bool bVar13;\n  \n  EVar3 = os->flags_;\n  bVar11 = false;\n  bVar13 = (EVar3 & 2) == 0;\n  if (bVar13) {\n    pbVar9 = (byte *)os->name_;\n    iVar6 = 6;\n    pbVar8 = pbVar9;\n    pbVar10 = (byte *)".debug";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar13 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar13);\n    bVar12 = false;\n    bVar11 = (!bVar11 && !bVar13) == bVar11;\n    if (!bVar11) {\n      iVar6 = 7;\n      pbVar8 = pbVar9;\n      pbVar10 = &DAT_0028a537;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar8 < *pbVar10;\n        bVar11 = *pbVar8 == *pbVar10;\n        pbVar8 = pbVar8 + 1;\n        pbVar10 = pbVar10 + 1;\n      } while (bVar11);\n      bVar13 = false;\n      bVar11 = (!bVar12 && !bVar11) == bVar12;\n      if (!bVar11) {\n        iVar6 = 0x11;\n        pbVar8 = pbVar9;\n        pbVar10 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);\n        bVar12 = false;\n        bVar11 = (!bVar13 && !bVar11) == bVar13;\n        if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar4 = this->places_[10].have_location;\n    iVar6 = 0x80;\n    iVar7 = 10;\n    goto LAB_0015b323;\n  }\n  EVar1 = os->type_;\n  if (EVar1 == 7) {\n    cVar4 = this->places_[8].have_location;\n    iVar6 = 0x68;\n    iVar7 = 8;\n    if ((bool)cVar4 != false) goto LAB_0015b323;\n    uVar5 = 0;\n    iVar7 = 8;\nLAB_0015b359:\n    if (this->places_[uVar5].have_location == false) {\n      cVar4 = this->places_[iVar7].have_location;\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((EVar3 & 0x400) == 0) {\n      if (EVar1 == 8) {\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }\n      else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (EVar1 != 8) {\n      cVar4 = this->places_[3].have_location;\n      iVar6 = 0x2c;\n      iVar7 = 3;\n      if ((bool)cVar4 != false) goto LAB_0015b323;\n      uVar5 = 2;\n      iVar7 = 3;\n      goto LAB_0015b359;\n    }\n    cVar4 = this->places_[4].have_location;\n    if ((bool)cVar4 != false) {\n      iVar6 = 0x38;\n      iVar7 = 4;\n      goto LAB_0015b323;\n    }\n    iVar6 = 0x38;\n    if (this->places_[3].have_location == false) {\n      uVar5 = 2;\n      iVar7 = 4;\n      goto LAB_0015b359;\n    }\n    iVar7 = 4;\n    uVar5 = 3;\n  }\n  p_Var2 = this->places_[uVar5].location._M_node;\n  this->places_[iVar7].have_location = true;\n  this->places_[iVar7].location._M_node = p_Var2;\n  cVar4 = '\x01';\nLAB_0015b323:\n  *pwhere = (Elements_iterator *)((int)&this->places_[0].name + iVar6);\n  this->places_[iVar7].have_location = true;\n  return (bool)cVar4;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Orphan_section_placement::" identifier : : identifier : :) (function_declarator "find_place\n          (Orphan_section_placement *this,Output_section *os,Elements_iterator **pwhere)" identifier (parameter_list "(Orphan_section_placement *this,Output_section *os,Elements_iterator **pwhere)" ( (parameter_declaration "Orphan_section_placement *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_section *os" type_identifier (pointer_declarator "*os" * identifier)) , (parameter_declaration "Elements_iterator **pwhere" type_identifier (pointer_declarator "**pwhere" * (pointer_declarator "*pwhere" * identifier))) ))) (compound_statement "{\n  Elf_Word EVar1;\n  _List_node_base *p_Var2;\n  Elf_Xword EVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  bool bVar13;\n  \n  EVar3 = os->flags_;\n  bVar11 = false;\n  bVar13 = (EVar3 & 2) == 0;\n  if (bVar13) {\n    pbVar9 = (byte *)os->name_;\n    iVar6 = 6;\n    pbVar8 = pbVar9;\n    pbVar10 = (byte *)".debug";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar13 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar13);\n    bVar12 = false;\n    bVar11 = (!bVar11 && !bVar13) == bVar11;\n    if (!bVar11) {\n      iVar6 = 7;\n      pbVar8 = pbVar9;\n      pbVar10 = &DAT_0028a537;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar8 < *pbVar10;\n        bVar11 = *pbVar8 == *pbVar10;\n        pbVar8 = pbVar8 + 1;\n        pbVar10 = pbVar10 + 1;\n      } while (bVar11);\n      bVar13 = false;\n      bVar11 = (!bVar12 && !bVar11) == bVar12;\n      if (!bVar11) {\n        iVar6 = 0x11;\n        pbVar8 = pbVar9;\n        pbVar10 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);\n        bVar12 = false;\n        bVar11 = (!bVar13 && !bVar11) == bVar13;\n        if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar4 = this->places_[10].have_location;\n    iVar6 = 0x80;\n    iVar7 = 10;\n    goto LAB_0015b323;\n  }\n  EVar1 = os->type_;\n  if (EVar1 == 7) {\n    cVar4 = this->places_[8].have_location;\n    iVar6 = 0x68;\n    iVar7 = 8;\n    if ((bool)cVar4 != false) goto LAB_0015b323;\n    uVar5 = 0;\n    iVar7 = 8;\nLAB_0015b359:\n    if (this->places_[uVar5].have_location == false) {\n      cVar4 = this->places_[iVar7].have_location;\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((EVar3 & 0x400) == 0) {\n      if (EVar1 == 8) {\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }\n      else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (EVar1 != 8) {\n      cVar4 = this->places_[3].have_location;\n      iVar6 = 0x2c;\n      iVar7 = 3;\n      if ((bool)cVar4 != false) goto LAB_0015b323;\n      uVar5 = 2;\n      iVar7 = 3;\n      goto LAB_0015b359;\n    }\n    cVar4 = this->places_[4].have_location;\n    if ((bool)cVar4 != false) {\n      iVar6 = 0x38;\n      iVar7 = 4;\n      goto LAB_0015b323;\n    }\n    iVar6 = 0x38;\n    if (this->places_[3].have_location == false) {\n      uVar5 = 2;\n      iVar7 = 4;\n      goto LAB_0015b359;\n    }\n    iVar7 = 4;\n    uVar5 = 3;\n  }\n  p_Var2 = this->places_[uVar5].location._M_node;\n  this->places_[iVar7].have_location = true;\n  this->places_[iVar7].location._M_node = p_Var2;\n  cVar4 = '\x01';\nLAB_0015b323:\n  *pwhere = (Elements_iterator *)((int)&this->places_[0].name + iVar6);\n  this->places_[iVar7].have_location = true;\n  return (bool)cVar4;\n}" { (declaration "Elf_Word EVar1;" type_identifier identifier ;) (declaration "_List_node_base *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "Elf_Xword EVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (expression_statement "EVar3 = os->flags_;" (assignment_expression "EVar3 = os->flags_" identifier = (field_expression "os->flags_" identifier -> field_identifier)) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar13 = (EVar3 & 2) == 0;" (assignment_expression "bVar13 = (EVar3 & 2) == 0" identifier = (binary_expression "(EVar3 & 2) == 0" (parenthesized_expression "(EVar3 & 2)" ( (binary_expression "EVar3 & 2" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar13) {\n    pbVar9 = (byte *)os->name_;\n    iVar6 = 6;\n    pbVar8 = pbVar9;\n    pbVar10 = (byte *)".debug";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar13 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar13);\n    bVar12 = false;\n    bVar11 = (!bVar11 && !bVar13) == bVar11;\n    if (!bVar11) {\n      iVar6 = 7;\n      pbVar8 = pbVar9;\n      pbVar10 = &DAT_0028a537;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar8 < *pbVar10;\n        bVar11 = *pbVar8 == *pbVar10;\n        pbVar8 = pbVar8 + 1;\n        pbVar10 = pbVar10 + 1;\n      } while (bVar11);\n      bVar13 = false;\n      bVar11 = (!bVar12 && !bVar11) == bVar12;\n      if (!bVar11) {\n        iVar6 = 0x11;\n        pbVar8 = pbVar9;\n        pbVar10 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);\n        bVar12 = false;\n        bVar11 = (!bVar13 && !bVar11) == bVar13;\n        if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar4 = this->places_[10].have_location;\n    iVar6 = 0x80;\n    iVar7 = 10;\n    goto LAB_0015b323;\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    pbVar9 = (byte *)os->name_;\n    iVar6 = 6;\n    pbVar8 = pbVar9;\n    pbVar10 = (byte *)".debug";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar13 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar13);\n    bVar12 = false;\n    bVar11 = (!bVar11 && !bVar13) == bVar11;\n    if (!bVar11) {\n      iVar6 = 7;\n      pbVar8 = pbVar9;\n      pbVar10 = &DAT_0028a537;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar8 < *pbVar10;\n        bVar11 = *pbVar8 == *pbVar10;\n        pbVar8 = pbVar8 + 1;\n        pbVar10 = pbVar10 + 1;\n      } while (bVar11);\n      bVar13 = false;\n      bVar11 = (!bVar12 && !bVar11) == bVar12;\n      if (!bVar11) {\n        iVar6 = 0x11;\n        pbVar8 = pbVar9;\n        pbVar10 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);\n        bVar12 = false;\n        bVar11 = (!bVar13 && !bVar11) == bVar13;\n        if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar4 = this->places_[10].have_location;\n    iVar6 = 0x80;\n    iVar7 = 10;\n    goto LAB_0015b323;\n  }" { (expression_statement "pbVar9 = (byte *)os->name_;" (assignment_expression "pbVar9 = (byte *)os->name_" identifier = (cast_expression "(byte *)os->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "os->name_" identifier -> field_identifier))) ;) (expression_statement "iVar6 = 6;" (assignment_expression "iVar6 = 6" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)".debug";" (assignment_expression "pbVar10 = (byte *)".debug"" identifier = (cast_expression "(byte *)".debug"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug"" " string_content "))) ;) (do_statement "do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar13 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + 1;\n      pbVar10 = pbVar10 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar13 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + 1;\n      pbVar10 = pbVar10 + 1;\n    }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar8 < *pbVar10;" (assignment_expression "bVar11 = *pbVar8 < *pbVar10" identifier = (binary_expression "*pbVar8 < *pbVar10" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar13 = *pbVar8 == *pbVar10;" (assignment_expression "bVar13 = *pbVar8 == *pbVar10" identifier = (binary_expression "*pbVar8 == *pbVar10" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar11 = (!bVar11 && !bVar13) == bVar11;" (assignment_expression "bVar11 = (!bVar11 && !bVar13) == bVar11" identifier = (binary_expression "(!bVar11 && !bVar13) == bVar11" (parenthesized_expression "(!bVar11 && !bVar13)" ( (binary_expression "!bVar11 && !bVar13" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar11) {\n      iVar6 = 7;\n      pbVar8 = pbVar9;\n      pbVar10 = &DAT_0028a537;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar8 < *pbVar10;\n        bVar11 = *pbVar8 == *pbVar10;\n        pbVar8 = pbVar8 + 1;\n        pbVar10 = pbVar10 + 1;\n      } while (bVar11);\n      bVar13 = false;\n      bVar11 = (!bVar12 && !bVar11) == bVar12;\n      if (!bVar11) {\n        iVar6 = 0x11;\n        pbVar8 = pbVar9;\n        pbVar10 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);\n        bVar12 = false;\n        bVar11 = (!bVar13 && !bVar11) == bVar13;\n        if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar11)" ( (unary_expression "!bVar11" ! identifier) )) (compound_statement "{\n      iVar6 = 7;\n      pbVar8 = pbVar9;\n      pbVar10 = &DAT_0028a537;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar8 < *pbVar10;\n        bVar11 = *pbVar8 == *pbVar10;\n        pbVar8 = pbVar8 + 1;\n        pbVar10 = pbVar10 + 1;\n      } while (bVar11);\n      bVar13 = false;\n      bVar11 = (!bVar12 && !bVar11) == bVar12;\n      if (!bVar11) {\n        iVar6 = 0x11;\n        pbVar8 = pbVar9;\n        pbVar10 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);\n        bVar12 = false;\n        bVar11 = (!bVar13 && !bVar11) == bVar13;\n        if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar6 = 7;" (assignment_expression "iVar6 = 7" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar10 = &DAT_0028a537;" (assignment_expression "pbVar10 = &DAT_0028a537" identifier = (pointer_expression "&DAT_0028a537" & identifier)) ;) (do_statement "do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar8 < *pbVar10;\n        bVar11 = *pbVar8 == *pbVar10;\n        pbVar8 = pbVar8 + 1;\n        pbVar10 = pbVar10 + 1;\n      } while (bVar11);" do (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar8 < *pbVar10;\n        bVar11 = *pbVar8 == *pbVar10;\n        pbVar8 = pbVar8 + 1;\n        pbVar10 = pbVar10 + 1;\n      }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar8 < *pbVar10;" (assignment_expression "bVar12 = *pbVar8 < *pbVar10" identifier = (binary_expression "*pbVar8 < *pbVar10" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar11 = *pbVar8 == *pbVar10;" (assignment_expression "bVar11 = *pbVar8 == *pbVar10" identifier = (binary_expression "*pbVar8 == *pbVar10" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar11)" ( identifier )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar11 = (!bVar12 && !bVar11) == bVar12;" (assignment_expression "bVar11 = (!bVar12 && !bVar11) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar11) == bVar12" (parenthesized_expression "(!bVar12 && !bVar11)" ( (binary_expression "!bVar12 && !bVar11" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar11" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar11) {\n        iVar6 = 0x11;\n        pbVar8 = pbVar9;\n        pbVar10 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);\n        bVar12 = false;\n        bVar11 = (!bVar13 && !bVar11) == bVar13;\n        if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar11)" ( (unary_expression "!bVar11" ! identifier) )) (compound_statement "{\n        iVar6 = 0x11;\n        pbVar8 = pbVar9;\n        pbVar10 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);\n        bVar12 = false;\n        bVar11 = (!bVar13 && !bVar11) == bVar13;\n        if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar6 = 0x11;" (assignment_expression "iVar6 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)".gnu.linkonce.wi.";" (assignment_expression "pbVar10 = (byte *)".gnu.linkonce.wi."" identifier = (cast_expression "(byte *)".gnu.linkonce.wi."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.wi."" " string_content "))) ;) (do_statement "do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        } while (bVar11);" do (compound_statement "{\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar13 = *pbVar8 < *pbVar10;\n          bVar11 = *pbVar8 == *pbVar10;\n          pbVar8 = pbVar8 + 1;\n          pbVar10 = pbVar10 + 1;\n        }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar8 < *pbVar10;" (assignment_expression "bVar13 = *pbVar8 < *pbVar10" identifier = (binary_expression "*pbVar8 < *pbVar10" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar11 = *pbVar8 == *pbVar10;" (assignment_expression "bVar11 = *pbVar8 == *pbVar10" identifier = (binary_expression "*pbVar8 == *pbVar10" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar11)" ( identifier )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar11 = (!bVar13 && !bVar11) == bVar13;" (assignment_expression "bVar11 = (!bVar13 && !bVar11) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar11) == bVar13" (parenthesized_expression "(!bVar13 && !bVar11)" ( (binary_expression "!bVar13 && !bVar11" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar11" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar11) {\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(!bVar11)" ( (unary_expression "!bVar11" ! identifier) )) (compound_statement "{\n          iVar6 = 5;\n          pbVar8 = pbVar9;\n          pbVar10 = (byte *)".line";\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);\n          bVar13 = false;\n          bVar11 = (!bVar12 && !bVar11) == bVar12;\n          if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }" { (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)".line";" (assignment_expression "pbVar10 = (byte *)".line"" identifier = (cast_expression "(byte *)".line"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".line"" " string_content "))) ;) (do_statement "do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          } while (bVar11);" do (compound_statement "{\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar12 = *pbVar8 < *pbVar10;\n            bVar11 = *pbVar8 == *pbVar10;\n            pbVar8 = pbVar8 + 1;\n            pbVar10 = pbVar10 + 1;\n          }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar8 < *pbVar10;" (assignment_expression "bVar12 = *pbVar8 < *pbVar10" identifier = (binary_expression "*pbVar8 < *pbVar10" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar11 = *pbVar8 == *pbVar10;" (assignment_expression "bVar11 = *pbVar8 == *pbVar10" identifier = (binary_expression "*pbVar8 == *pbVar10" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar11)" ( identifier )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar11 = (!bVar12 && !bVar11) == bVar12;" (assignment_expression "bVar11 = (!bVar12 && !bVar11) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar11) == bVar12" (parenthesized_expression "(!bVar12 && !bVar11)" ( (binary_expression "!bVar12 && !bVar11" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar11" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar11) {\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }" if (parenthesized_expression "(!bVar11)" ( (unary_expression "!bVar11" ! identifier) )) (compound_statement "{\n            iVar6 = 5;\n            pbVar8 = pbVar9;\n            pbVar10 = (byte *)".stab";\n            do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);\n            bVar12 = false;\n            bVar11 = (!bVar13 && !bVar11) == bVar13;\n            if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }" { (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar10 = (byte *)".stab";" (assignment_expression "pbVar10 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            } while (bVar11);" do (compound_statement "{\n              if (iVar6 == 0) break;\n              iVar6 = iVar6 + -1;\n              bVar13 = *pbVar8 < *pbVar10;\n              bVar11 = *pbVar8 == *pbVar10;\n              pbVar8 = pbVar8 + 1;\n              pbVar10 = pbVar10 + 1;\n            }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar8 < *pbVar10;" (assignment_expression "bVar13 = *pbVar8 < *pbVar10" identifier = (binary_expression "*pbVar8 < *pbVar10" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar11 = *pbVar8 == *pbVar10;" (assignment_expression "bVar11 = *pbVar8 == *pbVar10" identifier = (binary_expression "*pbVar8 == *pbVar10" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar11)" ( identifier )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar11 = (!bVar13 && !bVar11) == bVar13;" (assignment_expression "bVar11 = (!bVar13 && !bVar11) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar11) == bVar13" (parenthesized_expression "(!bVar13 && !bVar11)" ( (binary_expression "!bVar13 && !bVar11" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar11" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar11) {\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }" if (parenthesized_expression "(!bVar11)" ( (unary_expression "!bVar11" ! identifier) )) (compound_statement "{\n              iVar6 = 4;\n              pbVar8 = &DAT_0028b18e;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);\n              if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }\n            }" { (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (expression_statement "pbVar8 = &DAT_0028b18e;" (assignment_expression "pbVar8 = &DAT_0028b18e" identifier = (pointer_expression "&DAT_0028b18e" & identifier)) ;) (do_statement "do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              } while (bVar11);" do (compound_statement "{\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar12 = *pbVar9 < *pbVar8;\n                bVar11 = *pbVar9 == *pbVar8;\n                pbVar9 = pbVar9 + 1;\n                pbVar8 = pbVar8 + 1;\n              }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar8;" (assignment_expression "bVar12 = *pbVar9 < *pbVar8" identifier = (binary_expression "*pbVar9 < *pbVar8" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar11 = *pbVar9 == *pbVar8;" (assignment_expression "bVar11 = *pbVar9 == *pbVar8" identifier = (binary_expression "*pbVar9 == *pbVar8" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar11)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar11) != bVar12) {\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }" if (parenthesized_expression "((!bVar12 && !bVar11) != bVar12)" ( (binary_expression "(!bVar12 && !bVar11) != bVar12" (parenthesized_expression "(!bVar12 && !bVar11)" ( (binary_expression "!bVar12 && !bVar11" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar11" ! identifier)) )) != identifier) )) (compound_statement "{\n                cVar4 = this->places_[9].have_location;\n                iVar6 = 0x74;\n                iVar7 = 9;\n                goto LAB_0015b323;\n              }" { (expression_statement "cVar4 = this->places_[9].have_location;" (assignment_expression "cVar4 = this->places_[9].have_location" identifier = (field_expression "this->places_[9].have_location" (subscript_expression "this->places_[9]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar6 = 0x74;" (assignment_expression "iVar6 = 0x74" identifier = number_literal) ;) (expression_statement "iVar7 = 9;" (assignment_expression "iVar7 = 9" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) })) })) })) })) })) (expression_statement "cVar4 = this->places_[10].have_location;" (assignment_expression "cVar4 = this->places_[10].have_location" identifier = (field_expression "this->places_[10].have_location" (subscript_expression "this->places_[10]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar6 = 0x80;" (assignment_expression "iVar6 = 0x80" identifier = number_literal) ;) (expression_statement "iVar7 = 10;" (assignment_expression "iVar7 = 10" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "EVar1 = os->type_;" (assignment_expression "EVar1 = os->type_" identifier = (field_expression "os->type_" identifier -> field_identifier)) ;) (if_statement "if (EVar1 == 7) {\n    cVar4 = this->places_[8].have_location;\n    iVar6 = 0x68;\n    iVar7 = 8;\n    if ((bool)cVar4 != false) goto LAB_0015b323;\n    uVar5 = 0;\n    iVar7 = 8;\nLAB_0015b359:\n    if (this->places_[uVar5].have_location == false) {\n      cVar4 = this->places_[iVar7].have_location;\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((EVar3 & 0x400) == 0) {\n      if (EVar1 == 8) {\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }\n      else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (EVar1 != 8) {\n      cVar4 = this->places_[3].have_location;\n      iVar6 = 0x2c;\n      iVar7 = 3;\n      if ((bool)cVar4 != false) goto LAB_0015b323;\n      uVar5 = 2;\n      iVar7 = 3;\n      goto LAB_0015b359;\n    }\n    cVar4 = this->places_[4].have_location;\n    if ((bool)cVar4 != false) {\n      iVar6 = 0x38;\n      iVar7 = 4;\n      goto LAB_0015b323;\n    }\n    iVar6 = 0x38;\n    if (this->places_[3].have_location == false) {\n      uVar5 = 2;\n      iVar7 = 4;\n      goto LAB_0015b359;\n    }\n    iVar7 = 4;\n    uVar5 = 3;\n  }" if (parenthesized_expression "(EVar1 == 7)" ( (binary_expression "EVar1 == 7" identifier == number_literal) )) (compound_statement "{\n    cVar4 = this->places_[8].have_location;\n    iVar6 = 0x68;\n    iVar7 = 8;\n    if ((bool)cVar4 != false) goto LAB_0015b323;\n    uVar5 = 0;\n    iVar7 = 8;\nLAB_0015b359:\n    if (this->places_[uVar5].have_location == false) {\n      cVar4 = this->places_[iVar7].have_location;\n      goto LAB_0015b323;\n    }\n  }" { (expression_statement "cVar4 = this->places_[8].have_location;" (assignment_expression "cVar4 = this->places_[8].have_location" identifier = (field_expression "this->places_[8].have_location" (subscript_expression "this->places_[8]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar6 = 0x68;" (assignment_expression "iVar6 = 0x68" identifier = number_literal) ;) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (if_statement "if ((bool)cVar4 != false) goto LAB_0015b323;" if (parenthesized_expression "((bool)cVar4 != false)" ( (binary_expression "(bool)cVar4 != false" (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0015b359:\n    if (this->places_[uVar5].have_location == false) {\n      cVar4 = this->places_[iVar7].have_location;\n      goto LAB_0015b323;\n    }" statement_identifier : (if_statement "if (this->places_[uVar5].have_location == false) {\n      cVar4 = this->places_[iVar7].have_location;\n      goto LAB_0015b323;\n    }" if (parenthesized_expression "(this->places_[uVar5].have_location == false)" ( (binary_expression "this->places_[uVar5].have_location == false" (field_expression "this->places_[uVar5].have_location" (subscript_expression "this->places_[uVar5]" (field_expression "this->places_" identifier -> field_identifier) [ identifier ]) . field_identifier) == false) )) (compound_statement "{\n      cVar4 = this->places_[iVar7].have_location;\n      goto LAB_0015b323;\n    }" { (expression_statement "cVar4 = this->places_[iVar7].have_location;" (assignment_expression "cVar4 = this->places_[iVar7].have_location" identifier = (field_expression "this->places_[iVar7].have_location" (subscript_expression "this->places_[iVar7]" (field_expression "this->places_" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) }))) }) (else_clause "else {\n    if ((EVar3 & 0x400) == 0) {\n      if (EVar1 == 8) {\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }\n      else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (EVar1 != 8) {\n      cVar4 = this->places_[3].have_location;\n      iVar6 = 0x2c;\n      iVar7 = 3;\n      if ((bool)cVar4 != false) goto LAB_0015b323;\n      uVar5 = 2;\n      iVar7 = 3;\n      goto LAB_0015b359;\n    }\n    cVar4 = this->places_[4].have_location;\n    if ((bool)cVar4 != false) {\n      iVar6 = 0x38;\n      iVar7 = 4;\n      goto LAB_0015b323;\n    }\n    iVar6 = 0x38;\n    if (this->places_[3].have_location == false) {\n      uVar5 = 2;\n      iVar7 = 4;\n      goto LAB_0015b359;\n    }\n    iVar7 = 4;\n    uVar5 = 3;\n  }" else (compound_statement "{\n    if ((EVar3 & 0x400) == 0) {\n      if (EVar1 == 8) {\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }\n      else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (EVar1 != 8) {\n      cVar4 = this->places_[3].have_location;\n      iVar6 = 0x2c;\n      iVar7 = 3;\n      if ((bool)cVar4 != false) goto LAB_0015b323;\n      uVar5 = 2;\n      iVar7 = 3;\n      goto LAB_0015b359;\n    }\n    cVar4 = this->places_[4].have_location;\n    if ((bool)cVar4 != false) {\n      iVar6 = 0x38;\n      iVar7 = 4;\n      goto LAB_0015b323;\n    }\n    iVar6 = 0x38;\n    if (this->places_[3].have_location == false) {\n      uVar5 = 2;\n      iVar7 = 4;\n      goto LAB_0015b359;\n    }\n    iVar7 = 4;\n    uVar5 = 3;\n  }" { (if_statement "if ((EVar3 & 0x400) == 0) {\n      if (EVar1 == 8) {\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }\n      else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }\n      goto LAB_0015b359;\n    }" if (parenthesized_expression "((EVar3 & 0x400) == 0)" ( (binary_expression "(EVar3 & 0x400) == 0" (parenthesized_expression "(EVar3 & 0x400)" ( (binary_expression "EVar3 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (EVar1 == 8) {\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }\n      else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }\n      goto LAB_0015b359;\n    }" { (if_statement "if (EVar1 == 8) {\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }\n      else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }" if (parenthesized_expression "(EVar1 == 8)" ( (binary_expression "EVar1 == 8" identifier == number_literal) )) (compound_statement "{\n        cVar4 = this->places_[5].have_location;\n        iVar6 = 0x44;\n        iVar7 = 5;\n        if ((bool)cVar4 != false) goto LAB_0015b323;\n        uVar5 = 6;\n        iVar7 = 5;\n      }" { (expression_statement "cVar4 = this->places_[5].have_location;" (assignment_expression "cVar4 = this->places_[5].have_location" identifier = (field_expression "this->places_[5].have_location" (subscript_expression "this->places_[5]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar6 = 0x44;" (assignment_expression "iVar6 = 0x44" identifier = number_literal) ;) (expression_statement "iVar7 = 5;" (assignment_expression "iVar7 = 5" identifier = number_literal) ;) (if_statement "if ((bool)cVar4 != false) goto LAB_0015b323;" if (parenthesized_expression "((bool)cVar4 != false)" ( (binary_expression "(bool)cVar4 != false" (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar5 = 6;" (assignment_expression "uVar5 = 6" identifier = number_literal) ;) (expression_statement "iVar7 = 5;" (assignment_expression "iVar7 = 5" identifier = number_literal) ;) }) (else_clause "else if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }" else (if_statement "if ((EVar3 & 1) == 0) {\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }\n      else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }" if (parenthesized_expression "((EVar3 & 1) == 0)" ( (binary_expression "(EVar3 & 1) == 0" (parenthesized_expression "(EVar3 & 1)" ( (binary_expression "EVar3 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }\n      }" { (if_statement "if ((EVar1 == 9) || (EVar1 == 4)) {\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }\n        else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }" if (parenthesized_expression "((EVar1 == 9) || (EVar1 == 4))" ( (binary_expression "(EVar1 == 9) || (EVar1 == 4)" (parenthesized_expression "(EVar1 == 9)" ( (binary_expression "EVar1 == 9" identifier == number_literal) )) || (parenthesized_expression "(EVar1 == 4)" ( (binary_expression "EVar1 == 4" identifier == number_literal) ))) )) (compound_statement "{\n          cVar4 = this->places_[7].have_location;\n          iVar6 = 0x5c;\n          iVar7 = 7;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 7;\n        }" { (expression_statement "cVar4 = this->places_[7].have_location;" (assignment_expression "cVar4 = this->places_[7].have_location" identifier = (field_expression "this->places_[7].have_location" (subscript_expression "this->places_[7]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar6 = 0x5c;" (assignment_expression "iVar6 = 0x5c" identifier = number_literal) ;) (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (if_statement "if ((bool)cVar4 != false) goto LAB_0015b323;" if (parenthesized_expression "((bool)cVar4 != false)" ( (binary_expression "(bool)cVar4 != false" (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }" else (compound_statement "{\n          if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }\n          cVar4 = this->places_[1].have_location;\n          iVar6 = 0x14;\n          iVar7 = 1;\n          if ((bool)cVar4 != false) goto LAB_0015b323;\n          uVar5 = 0;\n          iVar7 = 1;\n        }" { (if_statement "if ((EVar3 & 4) != 0) {\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }" if (parenthesized_expression "((EVar3 & 4) != 0)" ( (binary_expression "(EVar3 & 4) != 0" (parenthesized_expression "(EVar3 & 4)" ( (binary_expression "EVar3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            cVar4 = this->places_[0].have_location;\n            iVar6 = 8;\n            iVar7 = 0;\n            goto LAB_0015b323;\n          }" { (expression_statement "cVar4 = this->places_[0].have_location;" (assignment_expression "cVar4 = this->places_[0].have_location" identifier = (field_expression "this->places_[0].have_location" (subscript_expression "this->places_[0]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "cVar4 = this->places_[1].have_location;" (assignment_expression "cVar4 = this->places_[1].have_location" identifier = (field_expression "this->places_[1].have_location" (subscript_expression "this->places_[1]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar6 = 0x14;" (assignment_expression "iVar6 = 0x14" identifier = number_literal) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (if_statement "if ((bool)cVar4 != false) goto LAB_0015b323;" if (parenthesized_expression "((bool)cVar4 != false)" ( (binary_expression "(bool)cVar4 != false" (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }" else (compound_statement "{\n        cVar4 = this->places_[2].have_location;\n        if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }\n        uVar5 = (uint)this->places_[1].have_location;\n        iVar6 = 0x20;\n        iVar7 = 2;\n      }" { (expression_statement "cVar4 = this->places_[2].have_location;" (assignment_expression "cVar4 = this->places_[2].have_location" identifier = (field_expression "this->places_[2].have_location" (subscript_expression "this->places_[2]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (if_statement "if ((bool)cVar4 != false) {\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }" if (parenthesized_expression "((bool)cVar4 != false)" ( (binary_expression "(bool)cVar4 != false" (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (compound_statement "{\n          iVar6 = 0x20;\n          iVar7 = 2;\n          goto LAB_0015b323;\n        }" { (expression_statement "iVar6 = 0x20;" (assignment_expression "iVar6 = 0x20" identifier = number_literal) ;) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "uVar5 = (uint)this->places_[1].have_location;" (assignment_expression "uVar5 = (uint)this->places_[1].have_location" identifier = (cast_expression "(uint)this->places_[1].have_location" ( (type_descriptor "uint" type_identifier) ) (field_expression "this->places_[1].have_location" (subscript_expression "this->places_[1]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) ;) (expression_statement "iVar6 = 0x20;" (assignment_expression "iVar6 = 0x20" identifier = number_literal) ;) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) }))))) (goto_statement "goto LAB_0015b359;" goto statement_identifier ;) })) (if_statement "if (EVar1 != 8) {\n      cVar4 = this->places_[3].have_location;\n      iVar6 = 0x2c;\n      iVar7 = 3;\n      if ((bool)cVar4 != false) goto LAB_0015b323;\n      uVar5 = 2;\n      iVar7 = 3;\n      goto LAB_0015b359;\n    }" if (parenthesized_expression "(EVar1 != 8)" ( (binary_expression "EVar1 != 8" identifier != number_literal) )) (compound_statement "{\n      cVar4 = this->places_[3].have_location;\n      iVar6 = 0x2c;\n      iVar7 = 3;\n      if ((bool)cVar4 != false) goto LAB_0015b323;\n      uVar5 = 2;\n      iVar7 = 3;\n      goto LAB_0015b359;\n    }" { (expression_statement "cVar4 = this->places_[3].have_location;" (assignment_expression "cVar4 = this->places_[3].have_location" identifier = (field_expression "this->places_[3].have_location" (subscript_expression "this->places_[3]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar6 = 0x2c;" (assignment_expression "iVar6 = 0x2c" identifier = number_literal) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (if_statement "if ((bool)cVar4 != false) goto LAB_0015b323;" if (parenthesized_expression "((bool)cVar4 != false)" ( (binary_expression "(bool)cVar4 != false" (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_0015b359;" goto statement_identifier ;) })) (expression_statement "cVar4 = this->places_[4].have_location;" (assignment_expression "cVar4 = this->places_[4].have_location" identifier = (field_expression "this->places_[4].have_location" (subscript_expression "this->places_[4]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (if_statement "if ((bool)cVar4 != false) {\n      iVar6 = 0x38;\n      iVar7 = 4;\n      goto LAB_0015b323;\n    }" if (parenthesized_expression "((bool)cVar4 != false)" ( (binary_expression "(bool)cVar4 != false" (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (compound_statement "{\n      iVar6 = 0x38;\n      iVar7 = 4;\n      goto LAB_0015b323;\n    }" { (expression_statement "iVar6 = 0x38;" (assignment_expression "iVar6 = 0x38" identifier = number_literal) ;) (expression_statement "iVar7 = 4;" (assignment_expression "iVar7 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "iVar6 = 0x38;" (assignment_expression "iVar6 = 0x38" identifier = number_literal) ;) (if_statement "if (this->places_[3].have_location == false) {\n      uVar5 = 2;\n      iVar7 = 4;\n      goto LAB_0015b359;\n    }" if (parenthesized_expression "(this->places_[3].have_location == false)" ( (binary_expression "this->places_[3].have_location == false" (field_expression "this->places_[3].have_location" (subscript_expression "this->places_[3]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier) == false) )) (compound_statement "{\n      uVar5 = 2;\n      iVar7 = 4;\n      goto LAB_0015b359;\n    }" { (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "iVar7 = 4;" (assignment_expression "iVar7 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0015b359;" goto statement_identifier ;) })) (expression_statement "iVar7 = 4;" (assignment_expression "iVar7 = 4" identifier = number_literal) ;) (expression_statement "uVar5 = 3;" (assignment_expression "uVar5 = 3" identifier = number_literal) ;) }))) (expression_statement "p_Var2 = this->places_[uVar5].location._M_node;" (assignment_expression "p_Var2 = this->places_[uVar5].location._M_node" identifier = (field_expression "this->places_[uVar5].location._M_node" (field_expression "this->places_[uVar5].location" (subscript_expression "this->places_[uVar5]" (field_expression "this->places_" identifier -> field_identifier) [ identifier ]) . field_identifier) . field_identifier)) ;) (expression_statement "this->places_[iVar7].have_location = true;" (assignment_expression "this->places_[iVar7].have_location = true" (field_expression "this->places_[iVar7].have_location" (subscript_expression "this->places_[iVar7]" (field_expression "this->places_" identifier -> field_identifier) [ identifier ]) . field_identifier) = true) ;) (expression_statement "this->places_[iVar7].location._M_node = p_Var2;" (assignment_expression "this->places_[iVar7].location._M_node = p_Var2" (field_expression "this->places_[iVar7].location._M_node" (field_expression "this->places_[iVar7].location" (subscript_expression "this->places_[iVar7]" (field_expression "this->places_" identifier -> field_identifier) [ identifier ]) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (labeled_statement "LAB_0015b323:\n  *pwhere = (Elements_iterator *)((int)&this->places_[0].name + iVar6);" statement_identifier : (expression_statement "*pwhere = (Elements_iterator *)((int)&this->places_[0].name + iVar6);" (assignment_expression "*pwhere = (Elements_iterator *)((int)&this->places_[0].name + iVar6)" (pointer_expression "*pwhere" * identifier) = (cast_expression "(Elements_iterator *)((int)&this->places_[0].name + iVar6)" ( (type_descriptor "Elements_iterator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->places_[0].name + iVar6)" ( (binary_expression "(int)&this->places_[0].name + iVar6" (cast_expression "(int)&this->places_[0].name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->places_[0].name" & (field_expression "this->places_[0].name" (subscript_expression "this->places_[0]" (field_expression "this->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + identifier) )))) ;)) (expression_statement "this->places_[iVar7].have_location = true;" (assignment_expression "this->places_[iVar7].have_location = true" (field_expression "this->places_[iVar7].have_location" (subscript_expression "this->places_[iVar7]" (field_expression "this->places_" identifier -> field_identifier) [ identifier ]) . field_identifier) = true) ;) (return_statement "return (bool)cVar4;" return (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })))
(translation_unit "char FUN_0015b280(int param_1,int param_2,int *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  \n  uVar4 = *(uint *)(param_2 + 0x54);\n  bVar10 = false;\n  bVar12 = (uVar4 & 2) == 0;\n  if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }\n  iVar5 = *(int *)(param_2 + 0x50);\n  if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }\n  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);\n  iVar1 = param_1 + iVar6 * 0xc;\n  *(undefined1 *)(iVar1 + 4) = 1;\n  *(undefined4 *)(iVar1 + 8) = uVar2;\n  cVar3 = '\x01';\nLAB_0015b323:\n  *param_3 = iVar5 + param_1;\n  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;\n  return cVar3;\n}\n\n" (function_definition "char FUN_0015b280(int param_1,int param_2,int *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  \n  uVar4 = *(uint *)(param_2 + 0x54);\n  bVar10 = false;\n  bVar12 = (uVar4 & 2) == 0;\n  if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }\n  iVar5 = *(int *)(param_2 + 0x50);\n  if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }\n  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);\n  iVar1 = param_1 + iVar6 * 0xc;\n  *(undefined1 *)(iVar1 + 4) = 1;\n  *(undefined4 *)(iVar1 + 8) = uVar2;\n  cVar3 = '\x01';\nLAB_0015b323:\n  *param_3 = iVar5 + param_1;\n  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;\n  return cVar3;\n}" primitive_type (function_declarator "FUN_0015b280(int param_1,int param_2,int *param_3)" identifier (parameter_list "(int param_1,int param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  \n  uVar4 = *(uint *)(param_2 + 0x54);\n  bVar10 = false;\n  bVar12 = (uVar4 & 2) == 0;\n  if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }\n  iVar5 = *(int *)(param_2 + 0x50);\n  if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }\n  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);\n  iVar1 = param_1 + iVar6 * 0xc;\n  *(undefined1 *)(iVar1 + 4) = 1;\n  *(undefined4 *)(iVar1 + 8) = uVar2;\n  cVar3 = '\x01';\nLAB_0015b323:\n  *param_3 = iVar5 + param_1;\n  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;\n  return cVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (expression_statement "uVar4 = *(uint *)(param_2 + 0x54);" (assignment_expression "uVar4 = *(uint *)(param_2 + 0x54)" identifier = (pointer_expression "*(uint *)(param_2 + 0x54)" * (cast_expression "(uint *)(param_2 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar12 = (uVar4 & 2) == 0;" (assignment_expression "bVar12 = (uVar4 & 2) == 0" identifier = (binary_expression "(uVar4 & 2) == 0" (parenthesized_expression "(uVar4 & 2)" ( (binary_expression "uVar4 & 2" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }" { (expression_statement "pbVar8 = *(byte **)(param_2 + 0x20);" (assignment_expression "pbVar8 = *(byte **)(param_2 + 0x20)" identifier = (pointer_expression "*(byte **)(param_2 + 0x20)" * (cast_expression "(byte **)(param_2 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)".debug";" (assignment_expression "pbVar9 = (byte *)".debug"" identifier = (cast_expression "(byte *)".debug"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug"" " string_content "))) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar7 < *pbVar9;" (assignment_expression "bVar10 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar12 = *pbVar7 == *pbVar9;" (assignment_expression "bVar12 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar10 && !bVar12) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar12) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar12) == bVar10" (parenthesized_expression "(!bVar10 && !bVar12)" ( (binary_expression "!bVar10 && !bVar12" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = &DAT_0028a537;" (assignment_expression "pbVar9 = &DAT_0028a537" identifier = (pointer_expression "&DAT_0028a537" & identifier)) ;) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar7 < *pbVar9;" (assignment_expression "bVar11 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar11 && !bVar10) == bVar11;" (assignment_expression "bVar10 = (!bVar11 && !bVar10) == bVar11" identifier = (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)".gnu.linkonce.wi.";" (assignment_expression "pbVar9 = (byte *)".gnu.linkonce.wi."" identifier = (cast_expression "(byte *)".gnu.linkonce.wi."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.wi."" " string_content "))) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar7 < *pbVar9;" (assignment_expression "bVar12 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar12 && !bVar10) == bVar12;" (assignment_expression "bVar10 = (!bVar12 && !bVar10) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar10) == bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" ( (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }" { (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)".line";" (assignment_expression "pbVar9 = (byte *)".line"" identifier = (cast_expression "(byte *)".line"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".line"" " string_content "))) ;) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);" do (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar7 < *pbVar9;" (assignment_expression "bVar11 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar11 && !bVar10) == bVar11;" (assignment_expression "bVar10 = (!bVar11 && !bVar10) == bVar11" identifier = (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }" { (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)".stab";" (assignment_expression "pbVar9 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar7 < *pbVar9;" (assignment_expression "bVar12 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar12 && !bVar10) == bVar12;" (assignment_expression "bVar10 = (!bVar12 && !bVar10) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar10) == bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" ( (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }" { (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar7 = &DAT_0028b18e;" (assignment_expression "pbVar7 = &DAT_0028b18e" identifier = (pointer_expression "&DAT_0028b18e" & identifier)) ;) (do_statement "do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);" do (compound_statement "{\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar8 < *pbVar7;" (assignment_expression "bVar11 = *pbVar8 < *pbVar7" identifier = (binary_expression "*pbVar8 < *pbVar7" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar10 = *pbVar8 == *pbVar7;" (assignment_expression "bVar10 = *pbVar8 == *pbVar7" identifier = (binary_expression "*pbVar8 == *pbVar7" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }" if (parenthesized_expression "((!bVar11 && !bVar10) != bVar11)" ( (binary_expression "(!bVar11 && !bVar10) != bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) != identifier) )) (compound_statement "{\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x70);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x70)" identifier = (pointer_expression "*(char *)(param_1 + 0x70)" * (cast_expression "(char *)(param_1 + 0x70)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x74;" (assignment_expression "iVar5 = 0x74" identifier = number_literal) ;) (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) })) })) })) })) })) (expression_statement "cVar3 = *(char *)(param_1 + 0x7c);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x7c)" identifier = (pointer_expression "*(char *)(param_1 + 0x7c)" * (cast_expression "(char *)(param_1 + 0x7c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x80;" (assignment_expression "iVar5 = 0x80" identifier = number_literal) ;) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "iVar5 = *(int *)(param_2 + 0x50);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x50)" identifier = (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }" { (expression_statement "cVar3 = *(char *)(param_1 + 100);" (assignment_expression "cVar3 = *(char *)(param_1 + 100)" identifier = (pointer_expression "*(char *)(param_1 + 100)" * (cast_expression "(char *)(param_1 + 100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x68;" (assignment_expression "iVar5 = 0x68" identifier = number_literal) ;) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }" statement_identifier : (if_statement "if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0')" ( (binary_expression "*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0'" (pointer_expression "*(char *)(param_1 + 4 + uVar4 * 0xc)" * (cast_expression "(char *)(param_1 + 4 + uVar4 * 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4 + uVar4 * 0xc)" ( (binary_expression "param_1 + 4 + uVar4 * 0xc" (binary_expression "param_1 + 4" identifier + number_literal) + (binary_expression "uVar4 * 0xc" identifier * number_literal)) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }" { (expression_statement "cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);" (assignment_expression "cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc)" identifier = (pointer_expression "*(char *)(param_1 + 4 + iVar6 * 0xc)" * (cast_expression "(char *)(param_1 + 4 + iVar6 * 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4 + iVar6 * 0xc)" ( (binary_expression "param_1 + 4 + iVar6 * 0xc" (binary_expression "param_1 + 4" identifier + number_literal) + (binary_expression "iVar6 * 0xc" identifier * number_literal)) ))))) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) }))) }) (else_clause "else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }" else (compound_statement "{\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }" { (if_statement "if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }" if (parenthesized_expression "((uVar4 & 0x400) == 0)" ( (binary_expression "(uVar4 & 0x400) == 0" (parenthesized_expression "(uVar4 & 0x400)" ( (binary_expression "uVar4 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }" { (if_statement "if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" if (parenthesized_expression "(iVar5 == 8)" ( (binary_expression "iVar5 == 8" identifier == number_literal) )) (compound_statement "{\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x40);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x40)" identifier = (pointer_expression "*(char *)(param_1 + 0x40)" * (cast_expression "(char *)(param_1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x44;" (assignment_expression "iVar5 = 0x44" identifier = number_literal) ;) (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 6;" (assignment_expression "uVar4 = 6" identifier = number_literal) ;) (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" identifier = number_literal) ;) }) (else_clause "else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" else (if_statement "if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" if (parenthesized_expression "((uVar4 & 1) == 0)" ( (binary_expression "(uVar4 & 1) == 0" (parenthesized_expression "(uVar4 & 1)" ( (binary_expression "uVar4 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }" { (if_statement "if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }" if (parenthesized_expression "((iVar5 == 9) || (iVar5 == 4))" ( (binary_expression "(iVar5 == 9) || (iVar5 == 4)" (parenthesized_expression "(iVar5 == 9)" ( (binary_expression "iVar5 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) ))) )) (compound_statement "{\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x58);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x58)" identifier = (pointer_expression "*(char *)(param_1 + 0x58)" * (cast_expression "(char *)(param_1 + 0x58)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x5c;" (assignment_expression "iVar5 = 0x5c" identifier = number_literal) ;) (expression_statement "iVar6 = 7;" (assignment_expression "iVar6 = 7" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 7;" (assignment_expression "iVar6 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }" else (compound_statement "{\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }" { (if_statement "if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }" if (parenthesized_expression "((uVar4 & 4) != 0)" ( (binary_expression "(uVar4 & 4) != 0" (parenthesized_expression "(uVar4 & 4)" ( (binary_expression "uVar4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }" { (expression_statement "cVar3 = *(char *)(param_1 + 4);" (assignment_expression "cVar3 = *(char *)(param_1 + 4)" identifier = (pointer_expression "*(char *)(param_1 + 4)" * (cast_expression "(char *)(param_1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "cVar3 = *(char *)(param_1 + 0x10);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x10)" identifier = (pointer_expression "*(char *)(param_1 + 0x10)" * (cast_expression "(char *)(param_1 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x14;" (assignment_expression "iVar5 = 0x14" identifier = number_literal) ;) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) }))) }) (else_clause "else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" else (compound_statement "{\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x1c);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x1c)" identifier = (pointer_expression "*(char *)(param_1 + 0x1c)" * (cast_expression "(char *)(param_1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }" { (expression_statement "iVar5 = 0x20;" (assignment_expression "iVar5 = 0x20" identifier = number_literal) ;) (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "uVar4 = (uint)*(byte *)(param_1 + 0x10);" (assignment_expression "uVar4 = (uint)*(byte *)(param_1 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(param_1 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x20;" (assignment_expression "iVar5 = 0x20" identifier = number_literal) ;) (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) }))))) (goto_statement "goto LAB_0015b359;" goto statement_identifier ;) })) (if_statement "if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }" if (parenthesized_expression "(iVar5 != 8)" ( (binary_expression "iVar5 != 8" identifier != number_literal) )) (compound_statement "{\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }" { (expression_statement "cVar3 = *(char *)(param_1 + 0x28);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x28)" identifier = (pointer_expression "*(char *)(param_1 + 0x28)" * (cast_expression "(char *)(param_1 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "iVar6 = 3;" (assignment_expression "iVar6 = 3" identifier = number_literal) ;) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;)) (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" identifier = number_literal) ;) (expression_statement "iVar6 = 3;" (assignment_expression "iVar6 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_0015b359;" goto statement_identifier ;) })) (expression_statement "cVar3 = *(char *)(param_1 + 0x34);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x34)" identifier = (pointer_expression "*(char *)(param_1 + 0x34)" * (cast_expression "(char *)(param_1 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }" { (expression_statement "iVar5 = 0x38;" (assignment_expression "iVar5 = 0x38" identifier = number_literal) ;) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0015b323;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0x38;" (assignment_expression "iVar5 = 0x38" identifier = number_literal) ;) (if_statement "if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x28) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x28) == '\0'" (pointer_expression "*(char *)(param_1 + 0x28)" * (cast_expression "(char *)(param_1 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }" { (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" identifier = number_literal) ;) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0015b359;" goto statement_identifier ;) })) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (expression_statement "uVar4 = 3;" (assignment_expression "uVar4 = 3" identifier = number_literal) ;) }))) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8 + uVar4 * 0xc)" * (cast_expression "(undefined4 *)(param_1 + 8 + uVar4 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8 + uVar4 * 0xc)" ( (binary_expression "param_1 + 8 + uVar4 * 0xc" (binary_expression "param_1 + 8" identifier + number_literal) + (binary_expression "uVar4 * 0xc" identifier * number_literal)) ))))) ;) (expression_statement "iVar1 = param_1 + iVar6 * 0xc;" (assignment_expression "iVar1 = param_1 + iVar6 * 0xc" identifier = (binary_expression "param_1 + iVar6 * 0xc" identifier + (binary_expression "iVar6 * 0xc" identifier * number_literal))) ;) (expression_statement "*(undefined1 *)(iVar1 + 4) = 1;" (assignment_expression "*(undefined1 *)(iVar1 + 4) = 1" (pointer_expression "*(undefined1 *)(iVar1 + 4)" * (cast_expression "(undefined1 *)(iVar1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (labeled_statement "LAB_0015b323:\n  *param_3 = iVar5 + param_1;" statement_identifier : (expression_statement "*param_3 = iVar5 + param_1;" (assignment_expression "*param_3 = iVar5 + param_1" (pointer_expression "*param_3" * identifier) = (binary_expression "iVar5 + param_1" identifier + identifier)) ;)) (expression_statement "*(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1" (pointer_expression "*(undefined1 *)(param_1 + 4 + iVar6 * 0xc)" * (cast_expression "(undefined1 *)(param_1 + 4 + iVar6 * 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4 + iVar6 * 0xc)" ( (binary_expression "param_1 + 4 + iVar6 * 0xc" (binary_expression "param_1 + 4" identifier + number_literal) + (binary_expression "iVar6 * 0xc" identifier * number_literal)) )))) = number_literal) ;) (return_statement "return cVar3;" return identifier ;) })))
(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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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 *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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 *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (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 *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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 = LIT) ;) (expression_statement (assignment_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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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 = (char_literal ' escape_sequence ')) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) (return_statement return IDENT ;) })))
(function_definition "char FUN_0015b280(int param_1,int param_2,int *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  \n  uVar4 = *(uint *)(param_2 + 0x54);\n  bVar10 = false;\n  bVar12 = (uVar4 & 2) == 0;\n  if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }\n  iVar5 = *(int *)(param_2 + 0x50);\n  if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }\n  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);\n  iVar1 = param_1 + iVar6 * 0xc;\n  *(undefined1 *)(iVar1 + 4) = 1;\n  *(undefined4 *)(iVar1 + 8) = uVar2;\n  cVar3 = '\x01';\nLAB_0015b323:\n  *param_3 = iVar5 + param_1;\n  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;\n  return cVar3;\n}" (primitive_type "char") (function_declarator "FUN_0015b280(int param_1,int param_2,int *param_3)" (identifier "FUN_0015b280") (parameter_list "(int param_1,int param_2,int *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  char cVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  \n  uVar4 = *(uint *)(param_2 + 0x54);\n  bVar10 = false;\n  bVar12 = (uVar4 & 2) == 0;\n  if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }\n  iVar5 = *(int *)(param_2 + 0x50);\n  if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }\n  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);\n  iVar1 = param_1 + iVar6 * 0xc;\n  *(undefined1 *)(iVar1 + 4) = 1;\n  *(undefined4 *)(iVar1 + 8) = uVar2;\n  cVar3 = '\x01';\nLAB_0015b323:\n  *param_3 = iVar5 + param_1;\n  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;\n  return cVar3;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (expression_statement "uVar4 = *(uint *)(param_2 + 0x54);" (assignment_expression "uVar4 = *(uint *)(param_2 + 0x54)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(param_2 + 0x54)" (* "*") (cast_expression "(uint *)(param_2 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (uVar4 & 2) == 0;" (assignment_expression "bVar12 = (uVar4 & 2) == 0" (identifier "bVar12") (= "=") (binary_expression "(uVar4 & 2) == 0" (parenthesized_expression "(uVar4 & 2)" (( "(") (binary_expression "uVar4 & 2" (identifier "uVar4") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar12) {\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n    pbVar8 = *(byte **)(param_2 + 0x20);\n    iVar5 = 6;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)".debug";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }\n    cVar3 = *(char *)(param_1 + 0x7c);\n    iVar5 = 0x80;\n    iVar6 = 10;\n    goto LAB_0015b323;\n  }" ({ "{") (expression_statement "pbVar8 = *(byte **)(param_2 + 0x20);" (assignment_expression "pbVar8 = *(byte **)(param_2 + 0x20)" (identifier "pbVar8") (= "=") (pointer_expression "*(byte **)(param_2 + 0x20)" (* "*") (cast_expression "(byte **)(param_2 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" (identifier "iVar5") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" (identifier "pbVar7") (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "pbVar9 = (byte *)".debug";" (assignment_expression "pbVar9 = (byte *)".debug"" (identifier "pbVar9") (= "=") (cast_expression "(byte *)".debug"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".debug"" (" """) (string_content ".debug") (" """)))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + 1;\n      pbVar9 = pbVar9 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar10 = *pbVar7 < *pbVar9;" (assignment_expression "bVar10 = *pbVar7 < *pbVar9" (identifier "bVar10") (= "=") (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar12 = *pbVar7 == *pbVar9;" (assignment_expression "bVar12 = *pbVar7 == *pbVar9" (identifier "bVar12") (= "=") (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" (identifier "bVar11") (= "=") (false "false")) (; ";")) (expression_statement "bVar10 = (!bVar10 && !bVar12) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar12) == bVar10" (identifier "bVar10") (= "=") (binary_expression "(!bVar10 && !bVar12) == bVar10" (parenthesized_expression "(!bVar10 && !bVar12)" (( "(") (binary_expression "!bVar10 && !bVar12" (unary_expression "!bVar10" (! "!") (identifier "bVar10")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar10"))) (; ";")) (if_statement "if (!bVar10) {\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(!bVar10)" (( "(") (unary_expression "!bVar10" (! "!") (identifier "bVar10")) () ")")) (compound_statement "{\n      iVar5 = 7;\n      pbVar7 = pbVar8;\n      pbVar9 = &DAT_0028a537;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" (identifier "iVar5") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" (identifier "pbVar7") (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "pbVar9 = &DAT_0028a537;" (assignment_expression "pbVar9 = &DAT_0028a537" (identifier "pbVar9") (= "=") (pointer_expression "&DAT_0028a537" (& "&") (identifier "DAT_0028a537"))) (; ";")) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      } while (bVar10);" (do "do") (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + 1;\n        pbVar9 = pbVar9 + 1;\n      }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar11 = *pbVar7 < *pbVar9;" (assignment_expression "bVar11 = *pbVar7 < *pbVar9" (identifier "bVar11") (= "=") (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" (identifier "bVar10") (= "=") (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar10 = (!bVar11 && !bVar10) == bVar11;" (assignment_expression "bVar10 = (!bVar11 && !bVar10) == bVar11" (identifier "bVar10") (= "=") (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" (( "(") (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" (! "!") (identifier "bVar11")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (== "==") (identifier "bVar11"))) (; ";")) (if_statement "if (!bVar10) {\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(!bVar10)" (( "(") (unary_expression "!bVar10" (! "!") (identifier "bVar10")) () ")")) (compound_statement "{\n        iVar5 = 0x11;\n        pbVar7 = pbVar8;\n        pbVar9 = (byte *)".gnu.linkonce.wi.";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);\n        bVar11 = false;\n        bVar10 = (!bVar12 && !bVar10) == bVar12;\n        if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" (identifier "iVar5") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" (identifier "pbVar7") (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "pbVar9 = (byte *)".gnu.linkonce.wi.";" (assignment_expression "pbVar9 = (byte *)".gnu.linkonce.wi."" (identifier "pbVar9") (= "=") (cast_expression "(byte *)".gnu.linkonce.wi."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".gnu.linkonce.wi."" (" """) (string_content ".gnu.linkonce.wi.") (" """)))) (; ";")) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        } while (bVar10);" (do "do") (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar12 = *pbVar7 < *pbVar9;\n          bVar10 = *pbVar7 == *pbVar9;\n          pbVar7 = pbVar7 + 1;\n          pbVar9 = pbVar9 + 1;\n        }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar7 < *pbVar9;" (assignment_expression "bVar12 = *pbVar7 < *pbVar9" (identifier "bVar12") (= "=") (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" (identifier "bVar10") (= "=") (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" (identifier "bVar11") (= "=") (false "false")) (; ";")) (expression_statement "bVar10 = (!bVar12 && !bVar10) == bVar12;" (assignment_expression "bVar10 = (!bVar12 && !bVar10) == bVar12" (identifier "bVar10") (= "=") (binary_expression "(!bVar12 && !bVar10) == bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" (( "(") (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (== "==") (identifier "bVar12"))) (; ";")) (if_statement "if (!bVar10) {\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(!bVar10)" (( "(") (unary_expression "!bVar10" (! "!") (identifier "bVar10")) () ")")) (compound_statement "{\n          iVar5 = 5;\n          pbVar7 = pbVar8;\n          pbVar9 = (byte *)".line";\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);\n          bVar12 = false;\n          bVar10 = (!bVar11 && !bVar10) == bVar11;\n          if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" (identifier "pbVar7") (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "pbVar9 = (byte *)".line";" (assignment_expression "pbVar9 = (byte *)".line"" (identifier "pbVar9") (= "=") (cast_expression "(byte *)".line"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".line"" (" """) (string_content ".line") (" """)))) (; ";")) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          } while (bVar10);" (do "do") (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar11 = *pbVar7 < *pbVar9;\n            bVar10 = *pbVar7 == *pbVar9;\n            pbVar7 = pbVar7 + 1;\n            pbVar9 = pbVar9 + 1;\n          }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar11 = *pbVar7 < *pbVar9;" (assignment_expression "bVar11 = *pbVar7 < *pbVar9" (identifier "bVar11") (= "=") (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" (identifier "bVar10") (= "=") (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar10 = (!bVar11 && !bVar10) == bVar11;" (assignment_expression "bVar10 = (!bVar11 && !bVar10) == bVar11" (identifier "bVar10") (= "=") (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" (( "(") (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" (! "!") (identifier "bVar11")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (== "==") (identifier "bVar11"))) (; ";")) (if_statement "if (!bVar10) {\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(!bVar10)" (( "(") (unary_expression "!bVar10" (! "!") (identifier "bVar10")) () ")")) (compound_statement "{\n            iVar5 = 5;\n            pbVar7 = pbVar8;\n            pbVar9 = (byte *)".stab";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);\n            bVar11 = false;\n            bVar10 = (!bVar12 && !bVar10) == bVar12;\n            if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }\n          }" ({ "{") (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" (identifier "pbVar7") (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "pbVar9 = (byte *)".stab";" (assignment_expression "pbVar9 = (byte *)".stab"" (identifier "pbVar9") (= "=") (cast_expression "(byte *)".stab"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".stab"" (" """) (string_content ".stab") (" """)))) (; ";")) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            } while (bVar10);" (do "do") (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar12 = *pbVar7 < *pbVar9;\n              bVar10 = *pbVar7 == *pbVar9;\n              pbVar7 = pbVar7 + 1;\n              pbVar9 = pbVar9 + 1;\n            }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar7 < *pbVar9;" (assignment_expression "bVar12 = *pbVar7 < *pbVar9" (identifier "bVar12") (= "=") (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" (identifier "bVar10") (= "=") (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" (identifier "bVar11") (= "=") (false "false")) (; ";")) (expression_statement "bVar10 = (!bVar12 && !bVar10) == bVar12;" (assignment_expression "bVar10 = (!bVar12 && !bVar10) == bVar12" (identifier "bVar10") (= "=") (binary_expression "(!bVar12 && !bVar10) == bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" (( "(") (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (== "==") (identifier "bVar12"))) (; ";")) (if_statement "if (!bVar10) {\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }" (if "if") (parenthesized_expression "(!bVar10)" (( "(") (unary_expression "!bVar10" (! "!") (identifier "bVar10")) () ")")) (compound_statement "{\n              iVar5 = 4;\n              pbVar7 = &DAT_0028b18e;\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);\n              if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }\n            }" ({ "{") (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" (identifier "iVar5") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar7 = &DAT_0028b18e;" (assignment_expression "pbVar7 = &DAT_0028b18e" (identifier "pbVar7") (= "=") (pointer_expression "&DAT_0028b18e" (& "&") (identifier "DAT_0028b18e"))) (; ";")) (do_statement "do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              } while (bVar10);" (do "do") (compound_statement "{\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar11 = *pbVar8 < *pbVar7;\n                bVar10 = *pbVar8 == *pbVar7;\n                pbVar8 = pbVar8 + 1;\n                pbVar7 = pbVar7 + 1;\n              }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar11 = *pbVar8 < *pbVar7;" (assignment_expression "bVar11 = *pbVar8 < *pbVar7" (identifier "bVar11") (= "=") (binary_expression "*pbVar8 < *pbVar7" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (< "<") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "bVar10 = *pbVar8 == *pbVar7;" (assignment_expression "bVar10 = *pbVar8 == *pbVar7" (identifier "bVar10") (= "=") (binary_expression "*pbVar8 == *pbVar7" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (== "==") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (if_statement "if ((!bVar11 && !bVar10) != bVar11) {\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }" (if "if") (parenthesized_expression "((!bVar11 && !bVar10) != bVar11)" (( "(") (binary_expression "(!bVar11 && !bVar10) != bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" (( "(") (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" (! "!") (identifier "bVar11")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (!= "!=") (identifier "bVar11")) () ")")) (compound_statement "{\n                cVar3 = *(char *)(param_1 + 0x70);\n                iVar5 = 0x74;\n                iVar6 = 9;\n                goto LAB_0015b323;\n              }" ({ "{") (expression_statement "cVar3 = *(char *)(param_1 + 0x70);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x70)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 0x70)" (* "*") (cast_expression "(char *)(param_1 + 0x70)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0x74;" (assignment_expression "iVar5 = 0x74" (identifier "iVar5") (= "=") (number_literal "0x74")) (; ";")) (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" (identifier "iVar6") (= "=") (number_literal "9")) (; ";")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "cVar3 = *(char *)(param_1 + 0x7c);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x7c)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 0x7c)" (* "*") (cast_expression "(char *)(param_1 + 0x7c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0x80;" (assignment_expression "iVar5 = 0x80" (identifier "iVar5") (= "=") (number_literal "0x80")) (; ";")) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" (identifier "iVar6") (= "=") (number_literal "10")) (; ";")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(param_2 + 0x50);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x50)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_2 + 0x50)" (* "*") (cast_expression "(int *)(param_2 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 7) {\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }\n  else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n    cVar3 = *(char *)(param_1 + 100);\n    iVar5 = 0x68;\n    iVar6 = 8;\n    if (cVar3 != '\0') goto LAB_0015b323;\n    uVar4 = 0;\n    iVar6 = 8;\nLAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }\n  }" ({ "{") (expression_statement "cVar3 = *(char *)(param_1 + 100);" (assignment_expression "cVar3 = *(char *)(param_1 + 100)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 100)" (* "*") (cast_expression "(char *)(param_1 + 100)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0x68;" (assignment_expression "iVar5 = 0x68" (identifier "iVar5") (= "=") (number_literal "0x68")) (; ";")) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" (identifier "iVar6") (= "=") (number_literal "8")) (; ";")) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";"))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = 8;" (assignment_expression "iVar6 = 8" (identifier "iVar6") (= "=") (number_literal "8")) (; ";")) (labeled_statement "LAB_0015b359:\n    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }" (statement_identifier "LAB_0015b359") (: ":") (if_statement "if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0'" (pointer_expression "*(char *)(param_1 + 4 + uVar4 * 0xc)" (* "*") (cast_expression "(char *)(param_1 + 4 + uVar4 * 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4 + uVar4 * 0xc)" (( "(") (binary_expression "param_1 + 4 + uVar4 * 0xc" (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) (+ "+") (binary_expression "uVar4 * 0xc" (identifier "uVar4") (* "*") (number_literal "0xc"))) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);\n      goto LAB_0015b323;\n    }" ({ "{") (expression_statement "cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);" (assignment_expression "cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 4 + iVar6 * 0xc)" (* "*") (cast_expression "(char *)(param_1 + 4 + iVar6 * 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4 + iVar6 * 0xc)" (( "(") (binary_expression "param_1 + 4 + iVar6 * 0xc" (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) (+ "+") (binary_expression "iVar6 * 0xc" (identifier "iVar6") (* "*") (number_literal "0xc"))) () ")"))))) (; ";")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }" (else "else") (compound_statement "{\n    if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }\n    if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }\n    cVar3 = *(char *)(param_1 + 0x34);\n    if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }\n    iVar5 = 0x38;\n    if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }\n    iVar6 = 4;\n    uVar4 = 3;\n  }" ({ "{") (if_statement "if ((uVar4 & 0x400) == 0) {\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }" (if "if") (parenthesized_expression "((uVar4 & 0x400) == 0)" (( "(") (binary_expression "(uVar4 & 0x400) == 0" (parenthesized_expression "(uVar4 & 0x400)" (( "(") (binary_expression "uVar4 & 0x400" (identifier "uVar4") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }\n      goto LAB_0015b359;\n    }" ({ "{") (if_statement "if (iVar5 == 8) {\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }\n      else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" (if "if") (parenthesized_expression "(iVar5 == 8)" (( "(") (binary_expression "iVar5 == 8" (identifier "iVar5") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n        cVar3 = *(char *)(param_1 + 0x40);\n        iVar5 = 0x44;\n        iVar6 = 5;\n        if (cVar3 != '\0') goto LAB_0015b323;\n        uVar4 = 6;\n        iVar6 = 5;\n      }" ({ "{") (expression_statement "cVar3 = *(char *)(param_1 + 0x40);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x40)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 0x40)" (* "*") (cast_expression "(char *)(param_1 + 0x40)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0x44;" (assignment_expression "iVar5 = 0x44" (identifier "iVar5") (= "=") (number_literal "0x44")) (; ";")) (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" (identifier "iVar6") (= "=") (number_literal "5")) (; ";")) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";"))) (expression_statement "uVar4 = 6;" (assignment_expression "uVar4 = 6" (identifier "uVar4") (= "=") (number_literal "6")) (; ";")) (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" (identifier "iVar6") (= "=") (number_literal "5")) (; ";")) (} "}")) (else_clause "else if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" (else "else") (if_statement "if ((uVar4 & 1) == 0) {\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }\n      else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" (if "if") (parenthesized_expression "((uVar4 & 1) == 0)" (( "(") (binary_expression "(uVar4 & 1) == 0" (parenthesized_expression "(uVar4 & 1)" (( "(") (binary_expression "uVar4 & 1" (identifier "uVar4") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }\n      }" ({ "{") (if_statement "if ((iVar5 == 9) || (iVar5 == 4)) {\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }\n        else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }" (if "if") (parenthesized_expression "((iVar5 == 9) || (iVar5 == 4))" (( "(") (binary_expression "(iVar5 == 9) || (iVar5 == 4)" (parenthesized_expression "(iVar5 == 9)" (( "(") (binary_expression "iVar5 == 9" (identifier "iVar5") (== "==") (number_literal "9")) () ")")) (|| "||") (parenthesized_expression "(iVar5 == 4)" (( "(") (binary_expression "iVar5 == 4" (identifier "iVar5") (== "==") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n          cVar3 = *(char *)(param_1 + 0x58);\n          iVar5 = 0x5c;\n          iVar6 = 7;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 7;\n        }" ({ "{") (expression_statement "cVar3 = *(char *)(param_1 + 0x58);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x58)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 0x58)" (* "*") (cast_expression "(char *)(param_1 + 0x58)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0x5c;" (assignment_expression "iVar5 = 0x5c" (identifier "iVar5") (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "iVar6 = 7;" (assignment_expression "iVar6 = 7" (identifier "iVar6") (= "=") (number_literal "7")) (; ";")) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";"))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = 7;" (assignment_expression "iVar6 = 7" (identifier "iVar6") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }" (else "else") (compound_statement "{\n          if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }\n          cVar3 = *(char *)(param_1 + 0x10);\n          iVar5 = 0x14;\n          iVar6 = 1;\n          if (cVar3 != '\0') goto LAB_0015b323;\n          uVar4 = 0;\n          iVar6 = 1;\n        }" ({ "{") (if_statement "if ((uVar4 & 4) != 0) {\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }" (if "if") (parenthesized_expression "((uVar4 & 4) != 0)" (( "(") (binary_expression "(uVar4 & 4) != 0" (parenthesized_expression "(uVar4 & 4)" (( "(") (binary_expression "uVar4 & 4" (identifier "uVar4") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            cVar3 = *(char *)(param_1 + 4);\n            iVar5 = 8;\n            iVar6 = 0;\n            goto LAB_0015b323;\n          }" ({ "{") (expression_statement "cVar3 = *(char *)(param_1 + 4);" (assignment_expression "cVar3 = *(char *)(param_1 + 4)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 4)" (* "*") (cast_expression "(char *)(param_1 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" (identifier "iVar5") (= "=") (number_literal "8")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";")) (} "}"))) (expression_statement "cVar3 = *(char *)(param_1 + 0x10);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x10)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 0x10)" (* "*") (cast_expression "(char *)(param_1 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0x14;" (assignment_expression "iVar5 = 0x14" (identifier "iVar5") (= "=") (number_literal "0x14")) (; ";")) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" (identifier "iVar6") (= "=") (number_literal "1")) (; ";")) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";"))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" (identifier "iVar6") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" (else "else") (compound_statement "{\n        cVar3 = *(char *)(param_1 + 0x1c);\n        if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }\n        uVar4 = (uint)*(byte *)(param_1 + 0x10);\n        iVar5 = 0x20;\n        iVar6 = 2;\n      }" ({ "{") (expression_statement "cVar3 = *(char *)(param_1 + 0x1c);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x1c)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 0x1c)" (* "*") (cast_expression "(char *)(param_1 + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (cVar3 != '\0') {\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar5 = 0x20;\n          iVar6 = 2;\n          goto LAB_0015b323;\n        }" ({ "{") (expression_statement "iVar5 = 0x20;" (assignment_expression "iVar5 = 0x20" (identifier "iVar5") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" (identifier "iVar6") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";")) (} "}"))) (expression_statement "uVar4 = (uint)*(byte *)(param_1 + 0x10);" (assignment_expression "uVar4 = (uint)*(byte *)(param_1 + 0x10)" (identifier "uVar4") (= "=") (binary_expression "(uint)*(byte *)(param_1 + 0x10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_1 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0x20;" (assignment_expression "iVar5 = 0x20" (identifier "iVar5") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" (identifier "iVar6") (= "=") (number_literal "2")) (; ";")) (} "}")))))) (goto_statement "goto LAB_0015b359;" (goto "goto") (statement_identifier "LAB_0015b359") (; ";")) (} "}"))) (if_statement "if (iVar5 != 8) {\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }" (if "if") (parenthesized_expression "(iVar5 != 8)" (( "(") (binary_expression "iVar5 != 8" (identifier "iVar5") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n      cVar3 = *(char *)(param_1 + 0x28);\n      iVar5 = 0x2c;\n      iVar6 = 3;\n      if (cVar3 != '\0') goto LAB_0015b323;\n      uVar4 = 2;\n      iVar6 = 3;\n      goto LAB_0015b359;\n    }" ({ "{") (expression_statement "cVar3 = *(char *)(param_1 + 0x28);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x28)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 0x28)" (* "*") (cast_expression "(char *)(param_1 + 0x28)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "iVar6 = 3;" (assignment_expression "iVar6 = 3" (identifier "iVar6") (= "=") (number_literal "3")) (; ";")) (if_statement "if (cVar3 != '\0') goto LAB_0015b323;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";"))) (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" (identifier "uVar4") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar6 = 3;" (assignment_expression "iVar6 = 3" (identifier "iVar6") (= "=") (number_literal "3")) (; ";")) (goto_statement "goto LAB_0015b359;" (goto "goto") (statement_identifier "LAB_0015b359") (; ";")) (} "}"))) (expression_statement "cVar3 = *(char *)(param_1 + 0x34);" (assignment_expression "cVar3 = *(char *)(param_1 + 0x34)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(param_1 + 0x34)" (* "*") (cast_expression "(char *)(param_1 + 0x34)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (if_statement "if (cVar3 != '\0') {\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar5 = 0x38;\n      iVar6 = 4;\n      goto LAB_0015b323;\n    }" ({ "{") (expression_statement "iVar5 = 0x38;" (assignment_expression "iVar5 = 0x38" (identifier "iVar5") (= "=") (number_literal "0x38")) (; ";")) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" (identifier "iVar6") (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_0015b323;" (goto "goto") (statement_identifier "LAB_0015b323") (; ";")) (} "}"))) (expression_statement "iVar5 = 0x38;" (assignment_expression "iVar5 = 0x38" (identifier "iVar5") (= "=") (number_literal "0x38")) (; ";")) (if_statement "if (*(char *)(param_1 + 0x28) == '\0') {\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x28) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x28) == '\0'" (pointer_expression "*(char *)(param_1 + 0x28)" (* "*") (cast_expression "(char *)(param_1 + 0x28)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar4 = 2;\n      iVar6 = 4;\n      goto LAB_0015b359;\n    }" ({ "{") (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" (identifier "uVar4") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" (identifier "iVar6") (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_0015b359;" (goto "goto") (statement_identifier "LAB_0015b359") (; ";")) (} "}"))) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" (identifier "iVar6") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar4 = 3;" (assignment_expression "uVar4 = 3" (identifier "uVar4") (= "=") (number_literal "3")) (; ";")) (} "}")))) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8 + uVar4 * 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8 + uVar4 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8 + uVar4 * 0xc)" (( "(") (binary_expression "param_1 + 8 + uVar4 * 0xc" (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) (+ "+") (binary_expression "uVar4 * 0xc" (identifier "uVar4") (* "*") (number_literal "0xc"))) () ")"))))) (; ";")) (expression_statement "iVar1 = param_1 + iVar6 * 0xc;" (assignment_expression "iVar1 = param_1 + iVar6 * 0xc" (identifier "iVar1") (= "=") (binary_expression "param_1 + iVar6 * 0xc" (identifier "param_1") (+ "+") (binary_expression "iVar6 * 0xc" (identifier "iVar6") (* "*") (number_literal "0xc")))) (; ";")) (expression_statement "*(undefined1 *)(iVar1 + 4) = 1;" (assignment_expression "*(undefined1 *)(iVar1 + 4) = 1" (pointer_expression "*(undefined1 *)(iVar1 + 4)" (* "*") (cast_expression "(undefined1 *)(iVar1 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4)" (( "(") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" (identifier "cVar3") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (labeled_statement "LAB_0015b323:\n  *param_3 = iVar5 + param_1;" (statement_identifier "LAB_0015b323") (: ":") (expression_statement "*param_3 = iVar5 + param_1;" (assignment_expression "*param_3 = iVar5 + param_1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "iVar5 + param_1" (identifier "iVar5") (+ "+") (identifier "param_1"))) (; ";"))) (expression_statement "*(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1" (pointer_expression "*(undefined1 *)(param_1 + 4 + iVar6 * 0xc)" (* "*") (cast_expression "(undefined1 *)(param_1 + 4 + iVar6 * 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4 + iVar6 * 0xc)" (( "(") (binary_expression "param_1 + 4 + iVar6 * 0xc" (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) (+ "+") (binary_expression "iVar6 * 0xc" (identifier "iVar6") (* "*") (number_literal "0xc"))) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return cVar3;" (return "return") (identifier "cVar3") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: bool find_place(Orphan_section_placement * this, Output_section * os,
   Elements_iterator * * pwhere) */

bool __thiscall
gold::type_1::function_1
          (type_1 *this,type_2 *os,type_3 **pwhere)

{
  type_4 var_9;
  type_5 *p_Var2;
  type_6 var_1;
  char cVar4;
  type_7 uVar5;
  int var_2;
  int iVar7;
  type_8 *var_3;
  type_8 *var_8;
  type_8 *var_4;
  bool var_5;
  bool var_6;
  bool var_7;
  
  var_1 = os->flags_;
  var_5 = false;
  var_7 = (var_1 & 2) == 0;
  if (var_7) {
    var_8 = (type_8 *)os->name_;
    var_2 = 6;
    var_3 = var_8;
    var_4 = (type_8 *)".debug";
    do {
      if (var_2 == 0) break;
      var_2 = var_2 + -1;
      var_5 = *var_3 < *var_4;
      var_7 = *var_3 == *var_4;
      var_3 = var_3 + 1;
      var_4 = var_4 + 1;
    } while (var_7);
    var_6 = false;
    var_5 = (!var_5 && !var_7) == var_5;
    if (!var_5) {
      var_2 = 7;
      var_3 = var_8;
      var_4 = &DAT_0028a537;
      do {
        if (var_2 == 0) break;
        var_2 = var_2 + -1;
        var_6 = *var_3 < *var_4;
        var_5 = *var_3 == *var_4;
        var_3 = var_3 + 1;
        var_4 = var_4 + 1;
      } while (var_5);
      var_7 = false;
      var_5 = (!var_6 && !var_5) == var_6;
      if (!var_5) {
        var_2 = 0x11;
        var_3 = var_8;
        var_4 = (type_8 *)".gnu.linkonce.wi.";
        do {
          if (var_2 == 0) break;
          var_2 = var_2 + -1;
          var_7 = *var_3 < *var_4;
          var_5 = *var_3 == *var_4;
          var_3 = var_3 + 1;
          var_4 = var_4 + 1;
        } while (var_5);
        var_6 = false;
        var_5 = (!var_7 && !var_5) == var_7;
        if (!var_5) {
          var_2 = 5;
          var_3 = var_8;
          var_4 = (type_8 *)".line";
          do {
            if (var_2 == 0) break;
            var_2 = var_2 + -1;
            var_6 = *var_3 < *var_4;
            var_5 = *var_3 == *var_4;
            var_3 = var_3 + 1;
            var_4 = var_4 + 1;
          } while (var_5);
          var_7 = false;
          var_5 = (!var_6 && !var_5) == var_6;
          if (!var_5) {
            var_2 = 5;
            var_3 = var_8;
            var_4 = (type_8 *)".stab";
            do {
              if (var_2 == 0) break;
              var_2 = var_2 + -1;
              var_7 = *var_3 < *var_4;
              var_5 = *var_3 == *var_4;
              var_3 = var_3 + 1;
              var_4 = var_4 + 1;
            } while (var_5);
            var_6 = false;
            var_5 = (!var_7 && !var_5) == var_7;
            if (!var_5) {
              var_2 = 4;
              var_3 = &DAT_0028b18e;
              do {
                if (var_2 == 0) break;
                var_2 = var_2 + -1;
                var_6 = *var_8 < *var_3;
                var_5 = *var_8 == *var_3;
                var_8 = var_8 + 1;
                var_3 = var_3 + 1;
              } while (var_5);
              if ((!var_6 && !var_5) != var_6) {
                cVar4 = this->places_[9].have_location;
                var_2 = 0x74;
                iVar7 = 9;
                goto LAB_0015b323;
              }
            }
          }
        }
      }
    }
    cVar4 = this->places_[10].have_location;
    var_2 = 0x80;
    iVar7 = 10;
    goto LAB_0015b323;
  }
  var_9 = os->type_;
  if (var_9 == 7) {
    cVar4 = this->places_[8].have_location;
    var_2 = 0x68;
    iVar7 = 8;
    if ((bool)cVar4 != false) goto LAB_0015b323;
    uVar5 = 0;
    iVar7 = 8;
LAB_0015b359:
    if (this->places_[uVar5].have_location == false) {
      cVar4 = this->places_[iVar7].have_location;
      goto LAB_0015b323;
    }
  }
  else {
    if ((var_1 & 0x400) == 0) {
      if (var_9 == 8) {
        cVar4 = this->places_[5].have_location;
        var_2 = 0x44;
        iVar7 = 5;
        if ((bool)cVar4 != false) goto LAB_0015b323;
        uVar5 = 6;
        iVar7 = 5;
      }
      else if ((var_1 & 1) == 0) {
        if ((var_9 == 9) || (var_9 == 4)) {
          cVar4 = this->places_[7].have_location;
          var_2 = 0x5c;
          iVar7 = 7;
          if ((bool)cVar4 != false) goto LAB_0015b323;
          uVar5 = 0;
          iVar7 = 7;
        }
        else {
          if ((var_1 & 4) != 0) {
            cVar4 = this->places_[0].have_location;
            var_2 = 8;
            iVar7 = 0;
            goto LAB_0015b323;
          }
          cVar4 = this->places_[1].have_location;
          var_2 = 0x14;
          iVar7 = 1;
          if ((bool)cVar4 != false) goto LAB_0015b323;
          uVar5 = 0;
          iVar7 = 1;
        }
      }
      else {
        cVar4 = this->places_[2].have_location;
        if ((bool)cVar4 != false) {
          var_2 = 0x20;
          iVar7 = 2;
          goto LAB_0015b323;
        }
        uVar5 = (type_7)this->places_[1].have_location;
        var_2 = 0x20;
        iVar7 = 2;
      }
      goto LAB_0015b359;
    }
    if (var_9 != 8) {
      cVar4 = this->places_[3].have_location;
      var_2 = 0x2c;
      iVar7 = 3;
      if ((bool)cVar4 != false) goto LAB_0015b323;
      uVar5 = 2;
      iVar7 = 3;
      goto LAB_0015b359;
    }
    cVar4 = this->places_[4].have_location;
    if ((bool)cVar4 != false) {
      var_2 = 0x38;
      iVar7 = 4;
      goto LAB_0015b323;
    }
    var_2 = 0x38;
    if (this->places_[3].have_location == false) {
      uVar5 = 2;
      iVar7 = 4;
      goto LAB_0015b359;
    }
    iVar7 = 4;
    uVar5 = 3;
  }
  p_Var2 = this->places_[uVar5].location._M_node;
  this->places_[iVar7].have_location = true;
  this->places_[iVar7].location._M_node = p_Var2;
  cVar4 = '\x01';
LAB_0015b323:
  *pwhere = (type_3 *)((int)&this->places_[0].name + var_2);
  this->places_[iVar7].have_location = true;
  return (bool)cVar4;
}


(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: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (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: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (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: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (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: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_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: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (escape_sequence)))) consequence: (compound_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: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) (return_statement (identifier)))))

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

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

{
  int iVar1;
  undefined4 uVar2;
  char cVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte *pbVar9;
  bool bVar10;
  bool bVar11;
  bool bVar12;
  
  uVar4 = *(uint *)(param_2 + 0x54);
  bVar10 = false;
  bVar12 = (uVar4 & 2) == 0;
  if (bVar12) {
    pbVar8 = *(byte **)(param_2 + 0x20);
    iVar5 = 6;
    pbVar7 = pbVar8;
    pbVar9 = (byte *)".debug";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar10 = *pbVar7 < *pbVar9;
      bVar12 = *pbVar7 == *pbVar9;
      pbVar7 = pbVar7 + 1;
      pbVar9 = pbVar9 + 1;
    } while (bVar12);
    bVar11 = false;
    bVar10 = (!bVar10 && !bVar12) == bVar10;
    if (!bVar10) {
      iVar5 = 7;
      pbVar7 = pbVar8;
      pbVar9 = &DAT_0028a537;
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        bVar11 = *pbVar7 < *pbVar9;
        bVar10 = *pbVar7 == *pbVar9;
        pbVar7 = pbVar7 + 1;
        pbVar9 = pbVar9 + 1;
      } while (bVar10);
      bVar12 = false;
      bVar10 = (!bVar11 && !bVar10) == bVar11;
      if (!bVar10) {
        iVar5 = 0x11;
        pbVar7 = pbVar8;
        pbVar9 = (byte *)".gnu.linkonce.wi.";
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar12 = *pbVar7 < *pbVar9;
          bVar10 = *pbVar7 == *pbVar9;
          pbVar7 = pbVar7 + 1;
          pbVar9 = pbVar9 + 1;
        } while (bVar10);
        bVar11 = false;
        bVar10 = (!bVar12 && !bVar10) == bVar12;
        if (!bVar10) {
          iVar5 = 5;
          pbVar7 = pbVar8;
          pbVar9 = (byte *)".line";
          do {
            if (iVar5 == 0) break;
            iVar5 = iVar5 + -1;
            bVar11 = *pbVar7 < *pbVar9;
            bVar10 = *pbVar7 == *pbVar9;
            pbVar7 = pbVar7 + 1;
            pbVar9 = pbVar9 + 1;
          } while (bVar10);
          bVar12 = false;
          bVar10 = (!bVar11 && !bVar10) == bVar11;
          if (!bVar10) {
            iVar5 = 5;
            pbVar7 = pbVar8;
            pbVar9 = (byte *)".stab";
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar12 = *pbVar7 < *pbVar9;
              bVar10 = *pbVar7 == *pbVar9;
              pbVar7 = pbVar7 + 1;
              pbVar9 = pbVar9 + 1;
            } while (bVar10);
            bVar11 = false;
            bVar10 = (!bVar12 && !bVar10) == bVar12;
            if (!bVar10) {
              iVar5 = 4;
              pbVar7 = &DAT_0028b18e;
              do {
                if (iVar5 == 0) break;
                iVar5 = iVar5 + -1;
                bVar11 = *pbVar8 < *pbVar7;
                bVar10 = *pbVar8 == *pbVar7;
                pbVar8 = pbVar8 + 1;
                pbVar7 = pbVar7 + 1;
              } while (bVar10);
              if ((!bVar11 && !bVar10) != bVar11) {
                cVar3 = *(char *)(param_1 + 0x70);
                iVar5 = 0x74;
                iVar6 = 9;
                goto LAB_0015b323;
              }
            }
          }
        }
      }
    }
    cVar3 = *(char *)(param_1 + 0x7c);
    iVar5 = 0x80;
    iVar6 = 10;
    goto LAB_0015b323;
  }
  iVar5 = *(int *)(param_2 + 0x50);
  if (iVar5 == 7) {
    cVar3 = *(char *)(param_1 + 100);
    iVar5 = 0x68;
    iVar6 = 8;
    if (cVar3 != '\0') goto LAB_0015b323;
    uVar4 = 0;
    iVar6 = 8;
LAB_0015b359:
    if (*(char *)(param_1 + 4 + uVar4 * 0xc) == '\0') {
      cVar3 = *(char *)(param_1 + 4 + iVar6 * 0xc);
      goto LAB_0015b323;
    }
  }
  else {
    if ((uVar4 & 0x400) == 0) {
      if (iVar5 == 8) {
        cVar3 = *(char *)(param_1 + 0x40);
        iVar5 = 0x44;
        iVar6 = 5;
        if (cVar3 != '\0') goto LAB_0015b323;
        uVar4 = 6;
        iVar6 = 5;
      }
      else if ((uVar4 & 1) == 0) {
        if ((iVar5 == 9) || (iVar5 == 4)) {
          cVar3 = *(char *)(param_1 + 0x58);
          iVar5 = 0x5c;
          iVar6 = 7;
          if (cVar3 != '\0') goto LAB_0015b323;
          uVar4 = 0;
          iVar6 = 7;
        }
        else {
          if ((uVar4 & 4) != 0) {
            cVar3 = *(char *)(param_1 + 4);
            iVar5 = 8;
            iVar6 = 0;
            goto LAB_0015b323;
          }
          cVar3 = *(char *)(param_1 + 0x10);
          iVar5 = 0x14;
          iVar6 = 1;
          if (cVar3 != '\0') goto LAB_0015b323;
          uVar4 = 0;
          iVar6 = 1;
        }
      }
      else {
        cVar3 = *(char *)(param_1 + 0x1c);
        if (cVar3 != '\0') {
          iVar5 = 0x20;
          iVar6 = 2;
          goto LAB_0015b323;
        }
        uVar4 = (uint)*(byte *)(param_1 + 0x10);
        iVar5 = 0x20;
        iVar6 = 2;
      }
      goto LAB_0015b359;
    }
    if (iVar5 != 8) {
      cVar3 = *(char *)(param_1 + 0x28);
      iVar5 = 0x2c;
      iVar6 = 3;
      if (cVar3 != '\0') goto LAB_0015b323;
      uVar4 = 2;
      iVar6 = 3;
      goto LAB_0015b359;
    }
    cVar3 = *(char *)(param_1 + 0x34);
    if (cVar3 != '\0') {
      iVar5 = 0x38;
      iVar6 = 4;
      goto LAB_0015b323;
    }
    iVar5 = 0x38;
    if (*(char *)(param_1 + 0x28) == '\0') {
      uVar4 = 2;
      iVar6 = 4;
      goto LAB_0015b359;
    }
    iVar6 = 4;
    uVar4 = 3;
  }
  uVar2 = *(undefined4 *)(param_1 + 8 + uVar4 * 0xc);
  iVar1 = param_1 + iVar6 * 0xc;
  *(undefined1 *)(iVar1 + 4) = 1;
  *(undefined4 *)(iVar1 + 8) = uVar2;
  cVar3 = '\x01';
LAB_0015b323:
  *param_3 = iVar5 + param_1;
  *(undefined1 *)(param_1 + 4 + iVar6 * 0xc) = 1;
  return cVar3;
}

