
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::_M_extract_name(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, int&, wchar_t const**, unsigned
   int, std::ios_base&, std::_Ios_Iostate&) const */

void std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::
     _M_extract_name(void)

{
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_002b55a0(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,
                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)

{
  int iVar1;
  code *pcVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  int *piVar6;
  bool bVar7;
  byte bVar8;
  byte bVar9;
  byte bVar10;
  int iVar11;
  int *piVar12;
  size_t sVar13;
  uint uVar14;
  char cVar15;
  bool bVar16;
  int aiStack_60 [8];
  int *local_40;
  int *local_3c;
  int local_38;
  int *local_34;
  int local_30;
  undefined **local_2c;
  int *local_28;
  int *local_24;
  int *local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x2b55ab;
  local_2c = &__DT_PLTGOT;
  local_28 = param_5;
  local_3c = param_5;
  local_34 = (int *)param_4;
  local_30 = param_4;
  aiStack_60[1] = param_10 + 0x6c;
  local_38 = param_6;
  local_24 = param_3;
  aiStack_60[0] = 0x2b55e1;
  piVar4 = (int *)FUN_0029d640();
  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);
  piVar12 = (int *)((int)&local_40 + iVar3);
  cVar15 = local_34 == (int *)0xffffffff;
  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);
  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;
  if (bVar7) {
    if ((int *)param_3[2] < (int *)param_3[3]) {
      iVar11 = *(int *)param_3[2];
      local_24._0_1_ = bVar7;
    }
    else {
      iVar11 = *param_3;
      local_40 = piVar12;
      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;
      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);
      pcVar2 = *(code **)(iVar11 + 0x24);
      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;
      iVar11 = (*pcVar2)();
      piVar12 = local_40;
    }
    cVar15 = (byte)local_24;
    local_24 = (int *)0x0;
    if (iVar11 != -1) {
      cVar15 = '\0';
      local_24 = param_3;
    }
  }
  bVar16 = local_38 == -1;
  local_38 = CONCAT31(local_38._1_3_,bVar16);
  bVar7 = local_28 != (int *)0x0 && bVar16;
  if (bVar7) {
    if ((int *)local_28[2] < (int *)local_28[3]) {
      iVar11 = *(int *)local_28[2];
    }
    else {
      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);
      iVar11 = *local_28;
      local_40 = piVar12;
      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;
      pcVar2 = *(code **)(iVar11 + 0x24);
      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;
      iVar11 = (*pcVar2)();
      piVar12 = local_40;
      cVar15 = (char)local_3c;
    }
    local_3c = (int *)0x0;
    if (iVar11 != -1) {
      local_3c = local_28;
    }
    bVar16 = iVar11 == -1 && bVar7;
  }
  if (bVar16 != (bool)cVar15) {
    piVar6 = local_34;
    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {
      local_20 = piVar12;
      if ((int *)local_24[2] < (int *)local_24[3]) {
        piVar6 = *(int **)local_24[2];
      }
      else {
        iVar11 = *local_24;
        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
        pcVar2 = *(code **)(iVar11 + 0x24);
        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;
        piVar6 = (int *)(*pcVar2)();
      }
      piVar12 = (int *)0x0;
      if (piVar6 != (int *)0xffffffff) {
        piVar12 = local_24;
      }
      local_24 = piVar12;
      piVar12 = local_20;
    }
    if (param_9 != 0) {
      local_20 = piVar4;
      iVar11 = 0;
      uVar14 = 0;
      local_34 = piVar12;
LAB_002b56b2:
      do {
        piVar12 = local_20;
        iVar5 = **(int **)(param_8 + iVar11 * 4);
        if ((int *)iVar5 != piVar6) {
          iVar1 = *local_20;
          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;
          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;
          pcVar2 = *(code **)(iVar1 + 0x18);
          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;
          iVar5 = (*pcVar2)();
          if ((int *)iVar5 != piVar6) {
            iVar11 = iVar11 + 1;
            if (param_9 == iVar11) break;
            goto LAB_002b56b2;
          }
        }
        local_34[uVar14] = iVar11;
        uVar14 = uVar14 + 1;
        iVar11 = iVar11 + 1;
      } while (param_9 != iVar11);
      piVar12 = local_34;
      local_28 = (int *)uVar14;
      local_34 = (int *)0x0;
      if (1 < uVar14) {
        do {
          uVar14 = 1;
          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);
          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;
          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));
          local_20 = piVar12;
          do {
            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =
                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);
            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;
            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));
            piVar12 = local_20;
            if (piVar6 < piVar4) {
              piVar4 = piVar6;
            }
            uVar14 = uVar14 + 1;
          } while (uVar14 < local_28);
          if ((uint)local_24[2] < (uint)local_24[3]) {
            local_24[2] = local_24[2] + 4;
          }
          else {
            iVar11 = *local_24;
            local_20 = piVar4;
            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
            pcVar2 = *(code **)(iVar11 + 0x28);
            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;
            (*pcVar2)();
            piVar4 = local_20;
          }
          local_34 = (int *)((int)local_34 + 1);
          if (piVar4 <= local_34) goto LAB_002b593e;
          if ((int *)local_24[2] < (int *)local_24[3]) {
            iVar11 = *(int *)local_24[2];
          }
          else {
            iVar11 = *local_24;
            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
            pcVar2 = *(code **)(iVar11 + 0x24);
            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;
            iVar11 = (*pcVar2)();
          }
          bVar7 = iVar11 == -1;
          piVar4 = (int *)0x0;
          if (!bVar7) {
            piVar4 = local_24;
          }
          local_24 = piVar4;
          bVar10 = local_3c != (int *)0x0 & (byte)local_38;
          if (bVar10 == 0) {
            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;
          }
          else {
            if ((int *)local_3c[2] < (int *)local_3c[3]) {
              iVar11 = *(int *)local_3c[2];
              local_20._0_1_ = bVar7;
            }
            else {
              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);
              iVar11 = *local_3c;
              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;
              pcVar2 = *(code **)(iVar11 + 0x24);
              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;
              iVar11 = (*pcVar2)();
            }
            piVar4 = (int *)0x0;
            if (iVar11 != -1) {
              piVar4 = local_3c;
            }
            local_3c = piVar4;
            if (iVar11 != -1) {
              bVar10 = 0;
            }
            if ((byte)local_20 == bVar10) goto LAB_002b593e;
          }
          uVar14 = 0;
          local_30 = (int)local_34 << 2;
          do {
            while( true ) {
              piVar4 = (int *)0xffffffff;
              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);
              if (local_24 != (int *)0x0) {
                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {
                  piVar4 = *(int **)local_24[2];
                }
                else {
                  iVar11 = *local_24;
                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
                  pcVar2 = *(code **)(iVar11 + 0x24);
                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;
                  piVar4 = (int *)(*pcVar2)();
                }
                piVar6 = (int *)0x0;
                if (piVar4 != (int *)0xffffffff) {
                  piVar6 = local_24;
                }
                local_24 = piVar6;
              }
              if (local_20 != piVar4) break;
              uVar14 = uVar14 + 1;
              if (local_28 <= uVar14) goto LAB_002b5811;
            }
            local_28 = (int *)((int)local_28 - 1);
            piVar12[uVar14] = piVar12[(int)local_28];
          } while (uVar14 < local_28);
LAB_002b5811:
        } while (1 < local_28);
        local_30 = -1;
      }
      if (local_28 == (int *)0x1) {
        if ((uint)local_24[2] < (uint)local_24[3]) {
          local_24[2] = local_24[2] + 4;
        }
        else {
          iVar11 = *local_24;
          local_20 = piVar12;
          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
          pcVar2 = *(code **)(iVar11 + 0x28);
          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;
          (*pcVar2)();
          piVar12 = local_20;
        }
        iVar11 = *(int *)(param_8 + *piVar12 * 4);
        local_30 = *piVar12;
        sVar13 = (int)local_34 + 1;
        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;
        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;
        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));
        piVar12 = local_24;
        local_20 = (int *)iVar11;
        if (sVar13 < local_28) {
          do {
            if ((int *)piVar12[2] < (int *)piVar12[3]) {
              iVar11 = *(int *)piVar12[2];
            }
            else {
              iVar11 = *piVar12;
              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;
              pcVar2 = *(code **)(iVar11 + 0x24);
              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;
              iVar11 = (*pcVar2)();
            }
            bVar10 = iVar11 == -1;
            if ((bool)bVar10) {
              piVar12 = (int *)0x0;
            }
            bVar8 = local_3c != (int *)0x0 & (byte)local_38;
            bVar9 = (byte)local_38;
            if (bVar8 != 0) {
              if ((int *)local_3c[2] < (int *)local_3c[3]) {
                iVar11 = *(int *)local_3c[2];
              }
              else {
                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);
                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);
                iVar11 = *local_3c;
                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;
                pcVar2 = *(code **)(iVar11 + 0x24);
                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;
                iVar11 = (*pcVar2)();
                bVar10 = (byte)local_2c;
                bVar8 = (byte)local_24;
              }
              piVar4 = (int *)0x0;
              if (iVar11 != -1) {
                piVar4 = local_3c;
              }
              bVar9 = bVar8;
              local_3c = piVar4;
              if (iVar11 != -1) {
                bVar9 = 0;
              }
            }
            if (bVar9 == bVar10) {
LAB_002b5aca:
              local_30 = -1;
              local_24 = piVar12;
              goto LAB_002b563f;
            }
            piVar6 = (int *)0xffffffff;
            piVar4 = *(int **)((int)local_20 + sVar13 * 4);
            if (piVar12 != (int *)0x0) {
              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {
                piVar6 = *(int **)piVar12[2];
              }
              else {
                iVar11 = *piVar12;
                local_24 = piVar4;
                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;
                pcVar2 = *(code **)(iVar11 + 0x24);
                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;
                piVar6 = (int *)(*pcVar2)();
                piVar4 = local_24;
              }
              if (piVar6 == (int *)0xffffffff) {
                piVar12 = (int *)0x0;
              }
            }
            if (piVar4 != piVar6) goto LAB_002b5aca;
            if ((uint)piVar12[2] < (uint)piVar12[3]) {
              piVar12[2] = piVar12[2] + 4;
            }
            else {
              iVar11 = *piVar12;
              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;
              pcVar2 = *(code **)(iVar11 + 0x28);
              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;
              (*pcVar2)();
            }
            sVar13 = sVar13 + 1;
          } while (sVar13 < local_28);
        }
        local_24 = piVar12;
        iVar3 = local_30;
        if (local_28 == (int *)sVar13) {
          local_30 = -1;
          *param_7 = iVar3;
          goto LAB_002b5645;
        }
LAB_002b593e:
        local_30 = -1;
      }
    }
  }
LAB_002b563f:
  *param_11 = *param_11 | 4;
LAB_002b5645:
  *param_1 = local_24;
  param_1[1] = local_30;
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0003a210
ADD EBX,0x15ea55
SUB ESP,0x48
MOV ECX,dword ptr [EBP + 0x18]
MOV EAX,dword ptr [EBP + 0x14]
MOV ESI,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + 0x1c]
MOV dword ptr [EBP + -0x24],ECX
MOV dword ptr [EBP + -0x38],ECX
MOV ECX,dword ptr [EBP + 0x2c]
MOV dword ptr [EBP + -0x30],EAX
MOV dword ptr [EBP + -0x2c],EAX
LEA EAX,[ECX + 0x6c]
PUSH EAX
MOV dword ptr [EBP + -0x28],EBX
MOV dword ptr [EBP + -0x34],EDI
MOV dword ptr [EBP + -0x20],ESI
CALL 0x0029d640
MOV EBX,dword ptr [EBP + 0x28]
ADD ESP,0x10
MOV EDI,EAX
LEA EAX,[EBX*0x4 + 0x1b]
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EAX,[ESP + 0xf]
MOV ECX,EAX
AND ECX,0xfffffff0
CMP dword ptr [EBP + -0x30],-0x1
SETZ byte ptr [EBP + -0x1c]
TEST ESI,ESI
MOVZX EAX,byte ptr [EBP + -0x1c]
SETNZ DL
AND DL,AL
JNZ 0x002b59b7
MOVZX EDX,byte ptr [EBP + -0x1c]
MOV EBX,dword ptr [EBP + -0x24]
CMP dword ptr [EBP + -0x34],-0x1
SETZ byte ptr [EBP + -0x34]
MOVZX EAX,byte ptr [EBP + -0x34]
TEST EBX,EBX
SETNZ BL
AND BL,AL
JNZ 0x002b598a
MOVZX EBX,byte ptr [EBP + -0x34]
CMP BL,DL
JNZ 0x002b565d
MOV EAX,dword ptr [EBP + 0x30]
OR dword ptr [EAX],0x4
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + -0x20]
MOV dword ptr [EAX],ESI
MOV ESI,dword ptr [EBP + -0x2c]
MOV dword ptr [EAX + 0x4],ESI
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
MOV ESI,dword ptr [EBP + -0x20]
TEST ESI,ESI
JZ 0x002b566e
CMP byte ptr [EBP + -0x1c],0x0
JNZ 0x002b5a0d
MOV ESI,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + 0x28]
TEST EBX,EBX
JZ 0x002b563f
XOR EAX,EAX
MOV dword ptr [EBP + -0x1c],EDI
XOR EBX,EBX
MOV EDX,dword ptr [EBP + 0x24]
MOV EDI,EAX
MOV dword ptr [EBP + -0x30],ECX
JMP 0x002b56b2
MOV dword ptr [EBP + 0x24],EDX
MOV EDX,dword ptr [EBP + -0x1c]
SUB ESP,0x8
MOV ECX,dword ptr [EDX]
PUSH EAX
PUSH EDX
CALL dword ptr [ECX + 0x18]
MOV EDX,dword ptr [EBP + 0x24]
ADD ESP,0x10
CMP EAX,ESI
JZ 0x002b56bb
ADD EBX,0x1
CMP dword ptr [EBP + 0x28],EBX
JZ 0x002b56cc
MOV EAX,dword ptr [EDX + EBX*0x4]
MOV EAX,dword ptr [EAX]
CMP EAX,ESI
JNZ 0x002b5690
MOV EAX,dword ptr [EBP + -0x30]
MOV dword ptr [EAX + EDI*0x4],EBX
ADD EDI,0x1
ADD EBX,0x1
CMP dword ptr [EBP + 0x28],EBX
JNZ 0x002b56b2
MOV ECX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x24],EDI
MOV dword ptr [EBP + -0x30],0x0
CMP EDI,0x1
JBE 0x002b5826
MOV ESI,ECX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI]
MOV EBX,dword ptr [EBP + 0x24]
SUB ESP,0xc
MOV EDI,0x1
PUSH dword ptr [EBX + EAX*0x4]
MOV EBX,dword ptr [EBP + -0x28]
CALL 0x0002c620
MOV ECX,ESI
ADD ESP,0x10
MOV ESI,EAX
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ECX + EDI*0x4]
MOV EBX,dword ptr [EBP + 0x24]
SUB ESP,0xc
MOV dword ptr [EBP + -0x1c],ECX
PUSH dword ptr [EBX + EAX*0x4]
MOV EBX,dword ptr [EBP + -0x28]
CALL 0x0002c620
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x1c]
CMP ESI,EAX
CMOVA ESI,EAX
ADD EDI,0x1
CMP EDI,dword ptr [EBP + -0x24]
JC 0x002b5710
MOV EDI,dword ptr [EBP + -0x20]
MOV EDX,ESI
MOV ESI,ECX
MOV EAX,dword ptr [EDI + 0x8]
CMP EAX,dword ptr [EDI + 0xc]
JNC 0x002b5970
ADD EAX,0x4
MOV dword ptr [EDI + 0x8],EAX
ADD dword ptr [EBP + -0x30],0x1
MOV EAX,dword ptr [EBP + -0x30]
CMP EAX,EDX
JNC 0x002b593e
MOV ECX,dword ptr [EBP + -0x20]
MOV EAX,dword ptr [ECX + 0x8]
CMP EAX,dword ptr [ECX + 0xc]
JNC 0x002b59f9
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EBP + -0x38]
CMP EAX,-0x1
MOV EAX,0x0
CMOVNZ EAX,dword ptr [EBP + -0x20]
SETZ CL
TEST EDX,EDX
MOV dword ptr [EBP + -0x20],EAX
SETNZ BL
AND BL,byte ptr [EBP + -0x34]
JNZ 0x002b590e
MOVZX EBX,byte ptr [EBP + -0x34]
CMP CL,BL
JZ 0x002b593e
MOV EAX,dword ptr [EBP + -0x30]
XOR EBX,EBX
MOV ECX,dword ptr [EBP + -0x24]
SHL EAX,0x2
MOV dword ptr [EBP + -0x2c],EAX
JMP 0x002b57c4
SUB ECX,0x1
MOV EAX,dword ptr [ESI + ECX*0x4]
MOV dword ptr [EDI],EAX
CMP ECX,EBX
JBE 0x002b5811
LEA EDI,[ESI + EBX*0x4]
MOV EDX,dword ptr [EBP + 0x24]
MOV EAX,dword ptr [EDI]
MOV EAX,dword ptr [EDX + EAX*0x4]
MOV EDX,dword ptr [EBP + -0x2c]
MOV EAX,dword ptr [EAX + EDX*0x1]
MOV EDX,0xffffffff
MOV dword ptr [EBP + -0x1c],EAX
MOV EAX,dword ptr [EBP + -0x20]
TEST EAX,EAX
JZ 0x002b5805
MOV EDX,EAX
MOV EAX,dword ptr [EAX + 0x8]
CMP EAX,dword ptr [EDX + 0xc]
JNC 0x002b5950
MOV EDX,dword ptr [EAX]
MOV EAX,EDX
CMP EAX,-0x1
MOV EAX,0x0
CMOVNZ EAX,dword ptr [EBP + -0x20]
MOV dword ptr [EBP + -0x20],EAX
CMP dword ptr [EBP + -0x1c],EDX
JNZ 0x002b57b8
ADD EBX,0x1
CMP ECX,EBX
JA 0x002b57c4
MOV dword ptr [EBP + -0x24],ECX
CMP ECX,0x1
JA 0x002b56e8
MOV dword ptr [EBP + -0x2c],0xffffffff
MOV ECX,ESI
CMP dword ptr [EBP + -0x24],0x1
JNZ 0x002b563f
MOV ESI,dword ptr [EBP + -0x20]
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x002b5b44
ADD EAX,0x4
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ECX]
MOV EBX,dword ptr [EBP + 0x24]
SUB ESP,0xc
MOV ESI,dword ptr [EBP + -0x30]
MOV EDI,dword ptr [EBX + EAX*0x4]
MOV EBX,dword ptr [EBP + -0x28]
MOV dword ptr [EBP + -0x2c],EAX
ADD ESI,0x1
PUSH EDI
CALL 0x0002c620
ADD ESP,0x10
MOV ECX,EAX
CMP ESI,EAX
JNC 0x002b5adf
MOV EBX,dword ptr [EBP + -0x20]
MOV dword ptr [EBP + -0x1c],EDI
MOV dword ptr [EBP + -0x24],EAX
JMP 0x002b58a6
CMP ECX,EDX
JNZ 0x002b5aca
MOV EAX,dword ptr [EBX + 0x8]
CMP EAX,dword ptr [EBX + 0xc]
JNC 0x002b5ab9
ADD EAX,0x4
MOV dword ptr [EBX + 0x8],EAX
ADD ESI,0x1
CMP ESI,dword ptr [EBP + -0x24]
JNC 0x002b5ad9
MOV EAX,dword ptr [EBX + 0x8]
CMP EAX,dword ptr [EBX + 0xc]
JNC 0x002b5b1a
MOV EAX,dword ptr [EAX]
CMP EAX,-0x1
MOV EAX,0x0
CMOVZ EBX,EAX
MOV EAX,dword ptr [EBP + -0x38]
SETZ CL
TEST EAX,EAX
SETNZ DL
AND DL,byte ptr [EBP + -0x34]
JNZ 0x002b5a90
MOVZX EDX,byte ptr [EBP + -0x34]
CMP DL,CL
JZ 0x002b5aca
MOV EAX,dword ptr [EBP + -0x1c]
MOV EDX,0xffffffff
MOV ECX,dword ptr [EAX + ESI*0x4]
TEST EBX,EBX
JZ 0x002b5880
MOV EAX,dword ptr [EBX + 0x8]
CMP EAX,dword ptr [EBX + 0xc]
JNC 0x002b5b2b
MOV EDX,dword ptr [EAX]
MOV EAX,EDX
CMP EAX,-0x1
MOV EAX,0x0
CMOVZ EBX,EAX
JMP 0x002b5880
MOV EDI,dword ptr [EBP + -0x38]
MOV EAX,dword ptr [EDI + 0x8]
CMP EAX,dword ptr [EDI + 0xc]
JNC 0x002b59dc
MOV EDX,dword ptr [EAX]
CMP EDX,-0x1
MOV EAX,0x0
CMOVNZ EAX,dword ptr [EBP + -0x38]
MOV dword ptr [EBP + -0x38],EAX
MOV EAX,0x0
CMOVNZ EBX,EAX
CMP CL,BL
JNZ 0x002b57a2
MOV dword ptr [EBP + -0x2c],0xffffffff
JMP 0x002b563f
MOV dword ptr [EBP + -0x24],ECX
MOV ECX,dword ptr [EBP + -0x20]
SUB ESP,0xc
MOV EAX,dword ptr [ECX]
PUSH ECX
CALL dword ptr [EAX + 0x24]
MOV ECX,dword ptr [EBP + -0x24]
MOV EDX,EAX
ADD ESP,0x10
JMP 0x002b57f6
MOV EBX,dword ptr [EBP + -0x20]
SUB ESP,0xc
MOV dword ptr [EBP + -0x1c],EDX
MOV EAX,dword ptr [EBX]
PUSH EBX
CALL dword ptr [EAX + 0x28]
MOV EDX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
JMP 0x002b5753
MOV ESI,dword ptr [EBP + -0x24]
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x002b5a4e
MOV ESI,dword ptr [EAX]
CMP ESI,-0x1
MOV EAX,0x0
CMOVNZ EAX,dword ptr [EBP + -0x24]
MOV dword ptr [EBP + -0x38],EAX
MOV EAX,0x0
CMOVNZ EBX,EAX
JMP 0x002b563b
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x002b5a30
MOV EAX,dword ptr [EAX]
CMP EAX,-0x1
MOV EBX,0x0
MOV EAX,0x0
CMOVNZ EBX,ESI
CMOVNZ EDX,EAX
MOV dword ptr [EBP + -0x20],EBX
JMP 0x002b561b
MOV byte ptr [EBP + -0x1c],CL
MOV ECX,dword ptr [EBP + -0x38]
SUB ESP,0xc
MOV EAX,dword ptr [ECX]
PUSH ECX
CALL dword ptr [EAX + 0x24]
MOVZX ECX,byte ptr [EBP + -0x1c]
MOV EDX,EAX
ADD ESP,0x10
JMP 0x002b591f
MOV EBX,dword ptr [EBP + -0x20]
SUB ESP,0xc
MOV EAX,dword ptr [EBX]
PUSH EBX
CALL dword ptr [EAX + 0x24]
ADD ESP,0x10
JMP 0x002b5773
MOV ESI,dword ptr [EBP + -0x20]
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x002b5a71
MOV ESI,dword ptr [EAX]
MOV EAX,ESI
CMP EAX,-0x1
MOV EAX,0x0
CMOVNZ EAX,dword ptr [EBP + -0x20]
MOV dword ptr [EBP + -0x20],EAX
JMP 0x002b5671
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
MOV dword ptr [EBP + -0x3c],ECX
PUSH ESI
MOV byte ptr [EBP + -0x20],DL
CALL dword ptr [EAX + 0x24]
MOV ECX,dword ptr [EBP + -0x3c]
MOVZX EDX,byte ptr [EBP + -0x20]
ADD ESP,0x10
JMP 0x002b59c1
MOV ESI,dword ptr [EBP + -0x24]
SUB ESP,0xc
MOV dword ptr [EBP + -0x3c],ECX
MOV byte ptr [EBP + -0x38],DL
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x24]
MOV ECX,dword ptr [EBP + -0x3c]
MOVZX EDX,byte ptr [EBP + -0x38]
MOV ESI,EAX
ADD ESP,0x10
JMP 0x002b599b
MOV ESI,dword ptr [EBP + -0x20]
SUB ESP,0xc
MOV dword ptr [EBP + -0x1c],ECX
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x24]
MOV ECX,dword ptr [EBP + -0x1c]
MOV ESI,EAX
ADD ESP,0x10
JMP 0x002b5a1c
MOV EDI,dword ptr [EBP + -0x38]
MOV EAX,dword ptr [EDI + 0x8]
CMP EAX,dword ptr [EDI + 0xc]
JNC 0x002b5afb
MOV EAX,dword ptr [EAX]
CMP EAX,-0x1
MOV EDI,0x0
CMOVNZ EDI,dword ptr [EBP + -0x38]
MOV EAX,0x0
CMOVNZ EDX,EAX
MOV dword ptr [EBP + -0x38],EDI
JMP 0x002b58d7
SUB ESP,0xc
MOV EAX,dword ptr [EBX]
PUSH EBX
CALL dword ptr [EAX + 0x28]
ADD ESP,0x10
JMP 0x002b589a
MOV dword ptr [EBP + -0x20],EBX
MOV dword ptr [EBP + -0x2c],0xffffffff
JMP 0x002b563f
MOV dword ptr [EBP + -0x20],EBX
MOV ECX,dword ptr [EBP + -0x24]
CMP ECX,ESI
JNZ 0x002b593e
MOV ESI,dword ptr [EBP + -0x2c]
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [EBP + -0x2c],0xffffffff
MOV dword ptr [EAX],ESI
JMP 0x002b5645
MOV byte ptr [EBP + -0x28],CL
MOV ECX,dword ptr [EBP + -0x38]
SUB ESP,0xc
MOV byte ptr [EBP + -0x20],DL
MOV EAX,dword ptr [ECX]
PUSH ECX
CALL dword ptr [EAX + 0x24]
MOVZX ECX,byte ptr [EBP + -0x28]
MOVZX EDX,byte ptr [EBP + -0x20]
ADD ESP,0x10
JMP 0x002b5a9d
SUB ESP,0xc
MOV EAX,dword ptr [EBX]
PUSH EBX
CALL dword ptr [EAX + 0x24]
ADD ESP,0x10
JMP 0x002b58b4
SUB ESP,0xc
MOV EAX,dword ptr [EBX]
MOV dword ptr [EBP + -0x20],ECX
PUSH EBX
CALL dword ptr [EAX + 0x24]
MOV ECX,dword ptr [EBP + -0x20]
MOV EDX,EAX
ADD ESP,0x10
JMP 0x002b58fe
MOV ESI,dword ptr [EBP + -0x20]
SUB ESP,0xc
MOV dword ptr [EBP + -0x1c],ECX
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x28]
MOV ECX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
JMP 0x002b5845
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_002b55a0(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)\n\n{\n  int iVar1;\n  code *pcVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int *piVar6;\n  bool bVar7;\n  byte bVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  bool bVar16;\n  int aiStack_60 [8];\n  int *local_40;\n  int *local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  undefined **local_2c;\n  int *local_28;\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2b55ab;\n  local_2c = &__DT_PLTGOT;\n  local_28 = param_5;\n  local_3c = param_5;\n  local_34 = (int *)param_4;\n  local_30 = param_4;\n  aiStack_60[1] = param_10 + 0x6c;\n  local_38 = param_6;\n  local_24 = param_3;\n  aiStack_60[0] = 0x2b55e1;\n  piVar4 = (int *)FUN_0029d640();\n  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);\n  piVar12 = (int *)((int)&local_40 + iVar3);\n  cVar15 = local_34 == (int *)0xffffffff;\n  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);\n  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;\n  if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }\n  bVar16 = local_38 == -1;\n  local_38 = CONCAT31(local_38._1_3_,bVar16);\n  bVar7 = local_28 != (int *)0x0 && bVar16;\n  if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }\n  if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }\nLAB_002b563f:\n  *param_11 = *param_11 | 4;\nLAB_002b5645:\n  *param_1 = local_24;\n  param_1[1] = local_30;\n  return;\n}\n\n" comment (function_definition "void FUN_002b55a0(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)\n\n{\n  int iVar1;\n  code *pcVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int *piVar6;\n  bool bVar7;\n  byte bVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  bool bVar16;\n  int aiStack_60 [8];\n  int *local_40;\n  int *local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  undefined **local_2c;\n  int *local_28;\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2b55ab;\n  local_2c = &__DT_PLTGOT;\n  local_28 = param_5;\n  local_3c = param_5;\n  local_34 = (int *)param_4;\n  local_30 = param_4;\n  aiStack_60[1] = param_10 + 0x6c;\n  local_38 = param_6;\n  local_24 = param_3;\n  aiStack_60[0] = 0x2b55e1;\n  piVar4 = (int *)FUN_0029d640();\n  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);\n  piVar12 = (int *)((int)&local_40 + iVar3);\n  cVar15 = local_34 == (int *)0xffffffff;\n  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);\n  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;\n  if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }\n  bVar16 = local_38 == -1;\n  local_38 = CONCAT31(local_38._1_3_,bVar16);\n  bVar7 = local_28 != (int *)0x0 && bVar16;\n  if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }\n  if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }\nLAB_002b563f:\n  *param_11 = *param_11 | 4;\nLAB_002b5645:\n  *param_1 = local_24;\n  param_1[1] = local_30;\n  return;\n}" primitive_type (function_declarator "FUN_002b55a0(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "uint *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  code *pcVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int *piVar6;\n  bool bVar7;\n  byte bVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  bool bVar16;\n  int aiStack_60 [8];\n  int *local_40;\n  int *local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  undefined **local_2c;\n  int *local_28;\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2b55ab;\n  local_2c = &__DT_PLTGOT;\n  local_28 = param_5;\n  local_3c = param_5;\n  local_34 = (int *)param_4;\n  local_30 = param_4;\n  aiStack_60[1] = param_10 + 0x6c;\n  local_38 = param_6;\n  local_24 = param_3;\n  aiStack_60[0] = 0x2b55e1;\n  piVar4 = (int *)FUN_0029d640();\n  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);\n  piVar12 = (int *)((int)&local_40 + iVar3);\n  cVar15 = local_34 == (int *)0xffffffff;\n  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);\n  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;\n  if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }\n  bVar16 = local_38 == -1;\n  local_38 = CONCAT31(local_38._1_3_,bVar16);\n  bVar7 = local_28 != (int *)0x0 && bVar16;\n  if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }\n  if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }\nLAB_002b563f:\n  *param_11 = *param_11 | 4;\nLAB_002b5645:\n  *param_1 = local_24;\n  param_1[1] = local_30;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "int aiStack_60 [8];" primitive_type (array_declarator "aiStack_60 [8]" identifier [ number_literal ]) ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)) ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2b55ab;" (assignment_expression "uStack_14 = 0x2b55ab" identifier = number_literal) ;) (expression_statement "local_2c = &__DT_PLTGOT;" (assignment_expression "local_2c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_28 = param_5;" (assignment_expression "local_28 = param_5" identifier = identifier) ;) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" identifier = identifier) ;) (expression_statement "local_34 = (int *)param_4;" (assignment_expression "local_34 = (int *)param_4" identifier = (cast_expression "(int *)param_4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_30 = param_4;" (assignment_expression "local_30 = param_4" identifier = identifier) ;) (expression_statement "aiStack_60[1] = param_10 + 0x6c;" (assignment_expression "aiStack_60[1] = param_10 + 0x6c" (subscript_expression "aiStack_60[1]" identifier [ number_literal ]) = (binary_expression "param_10 + 0x6c" identifier + number_literal)) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" identifier = identifier) ;) (expression_statement "aiStack_60[0] = 0x2b55e1;" (assignment_expression "aiStack_60[0] = 0x2b55e1" (subscript_expression "aiStack_60[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4 = (int *)FUN_0029d640();" (assignment_expression "piVar4 = (int *)FUN_0029d640()" identifier = (cast_expression "(int *)FUN_0029d640()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0029d640()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);" (assignment_expression "iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0)" identifier = (unary_expression "-(param_9 * 4 + 0x1bU & 0xfffffff0)" - (parenthesized_expression "(param_9 * 4 + 0x1bU & 0xfffffff0)" ( (binary_expression "param_9 * 4 + 0x1bU & 0xfffffff0" (binary_expression "param_9 * 4 + 0x1bU" (binary_expression "param_9 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "piVar12 = (int *)((int)&local_40 + iVar3);" (assignment_expression "piVar12 = (int *)((int)&local_40 + iVar3)" identifier = (cast_expression "(int *)((int)&local_40 + iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_40 + iVar3)" ( (binary_expression "(int)&local_40 + iVar3" (cast_expression "(int)&local_40" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_40" & identifier)) + identifier) )))) ;) (expression_statement "cVar15 = local_34 == (int *)0xffffffff;" (assignment_expression "cVar15 = local_34 == (int *)0xffffffff" identifier = (binary_expression "local_34 == (int *)0xffffffff" identifier == (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);" (assignment_expression "local_20 = (int *)CONCAT31(local_20._1_3_,cVar15)" identifier = (cast_expression "(int *)CONCAT31(local_20._1_3_,cVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_20._1_3_,cVar15)" identifier (argument_list "(local_20._1_3_,cVar15)" ( (field_expression "local_20._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "bVar7 = param_3 != (int *)0x0 && (bool)cVar15;" (assignment_expression "bVar7 = param_3 != (int *)0x0 && (bool)cVar15" identifier = (binary_expression "param_3 != (int *)0x0 && (bool)cVar15" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }" { (expression_statement "iVar11 = *(int *)param_3[2];" (assignment_expression "iVar11 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (expression_statement "local_24._0_1_ = bVar7;" (assignment_expression "local_24._0_1_ = bVar7" (field_expression "local_24._0_1_" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }" else (compound_statement "{\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }" { (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_40 = piVar12;" (assignment_expression "local_40 = piVar12" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = param_3;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = param_3" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);" (assignment_expression "local_24 = (int *)CONCAT31(local_24._1_3_,bVar7)" identifier = (cast_expression "(int *)CONCAT31(local_24._1_3_,bVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_24._1_3_,bVar7)" identifier (argument_list "(local_24._1_3_,bVar7)" ( (field_expression "local_24._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "piVar12 = local_40;" (assignment_expression "piVar12 = local_40" identifier = identifier) ;) }))) (expression_statement "cVar15 = (byte)local_24;" (assignment_expression "cVar15 = (byte)local_24" identifier = (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n      cVar15 = '\0';\n      local_24 = param_3;\n    }" { (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" identifier = identifier) ;) })) })) (expression_statement "bVar16 = local_38 == -1;" (assignment_expression "bVar16 = local_38 == -1" identifier = (binary_expression "local_38 == -1" identifier == number_literal)) ;) (expression_statement "local_38 = CONCAT31(local_38._1_3_,bVar16);" (assignment_expression "local_38 = CONCAT31(local_38._1_3_,bVar16)" identifier = (call_expression "CONCAT31(local_38._1_3_,bVar16)" identifier (argument_list "(local_38._1_3_,bVar16)" ( (field_expression "local_38._1_3_" identifier . field_identifier) , identifier )))) ;) (expression_statement "bVar7 = local_28 != (int *)0x0 && bVar16;" (assignment_expression "bVar7 = local_28 != (int *)0x0 && bVar16" identifier = (binary_expression "local_28 != (int *)0x0 && bVar16" (binary_expression "local_28 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && identifier)) ;) (if_statement "if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }" { (if_statement "if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }" if (parenthesized_expression "((int *)local_28[2] < (int *)local_28[3])" ( (binary_expression "(int *)local_28[2] < (int *)local_28[3]" (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_28[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar11 = *(int *)local_28[2];\n    }" { (expression_statement "iVar11 = *(int *)local_28[2];" (assignment_expression "iVar11 = *(int *)local_28[2]" identifier = (pointer_expression "*(int *)local_28[2]" * (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }" else (compound_statement "{\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }" { (expression_statement "local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);" (assignment_expression "local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15)" identifier = (cast_expression "(int *)CONCAT31(local_3c._1_3_,cVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_3c._1_3_,cVar15)" identifier (argument_list "(local_3c._1_3_,cVar15)" ( (field_expression "local_3c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "iVar11 = *local_28;" (assignment_expression "iVar11 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "local_40 = piVar12;" (assignment_expression "local_40 = piVar12" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_28;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_28" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "piVar12 = local_40;" (assignment_expression "piVar12 = local_40" identifier = identifier) ;) (expression_statement "cVar15 = (char)local_3c;" (assignment_expression "cVar15 = (char)local_3c" identifier = (cast_expression "(char)local_3c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "local_3c = (int *)0x0;" (assignment_expression "local_3c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar11 != -1) {\n      local_3c = local_28;\n    }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n      local_3c = local_28;\n    }" { (expression_statement "local_3c = local_28;" (assignment_expression "local_3c = local_28" identifier = identifier) ;) })) (expression_statement "bVar16 = iVar11 == -1 && bVar7;" (assignment_expression "bVar16 = iVar11 == -1 && bVar7" identifier = (binary_expression "iVar11 == -1 && bVar7" (binary_expression "iVar11 == -1" identifier == number_literal) && identifier)) ;) })) (if_statement "if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }" if (parenthesized_expression "(bVar16 != (bool)cVar15)" ( (binary_expression "bVar16 != (bool)cVar15" identifier != (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }" { (expression_statement "piVar6 = local_34;" (assignment_expression "piVar6 = local_34" identifier = identifier) ;) (if_statement "if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }" if (parenthesized_expression "((local_24 != (int *)0x0) && ((byte)local_20 != '\0'))" ( (binary_expression "(local_24 != (int *)0x0) && ((byte)local_20 != '\0')" (parenthesized_expression "(local_24 != (int *)0x0)" ( (binary_expression "local_24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((byte)local_20 != '\0')" ( (binary_expression "(byte)local_20 != '\0'" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }" { (expression_statement "local_20 = piVar12;" (assignment_expression "local_20 = piVar12" identifier = identifier) ;) (if_statement "if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }" if (parenthesized_expression "((int *)local_24[2] < (int *)local_24[3])" ( (binary_expression "(int *)local_24[2] < (int *)local_24[3]" (cast_expression "(int *)local_24[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_24[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        piVar6 = *(int **)local_24[2];\n      }" { (expression_statement "piVar6 = *(int **)local_24[2];" (assignment_expression "piVar6 = *(int **)local_24[2]" identifier = (pointer_expression "*(int **)local_24[2]" * (cast_expression "(int **)local_24[2]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_24[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }" else (compound_statement "{\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar6 = (int *)(*pcVar2)();" (assignment_expression "piVar6 = (int *)(*pcVar2)()" identifier = (cast_expression "(int *)(*pcVar2)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) }))) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }" if (parenthesized_expression "(piVar6 != (int *)0xffffffff)" ( (binary_expression "piVar6 != (int *)0xffffffff" identifier != (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar12 = local_24;\n      }" { (expression_statement "piVar12 = local_24;" (assignment_expression "piVar12 = local_24" identifier = identifier) ;) })) (expression_statement "local_24 = piVar12;" (assignment_expression "local_24 = piVar12" identifier = identifier) ;) (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" identifier = identifier) ;) })) (if_statement "if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (compound_statement "{\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }" { (expression_statement "local_20 = piVar4;" (assignment_expression "local_20 = piVar4" identifier = identifier) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_34 = piVar12;" (assignment_expression "local_34 = piVar12" identifier = identifier) ;) (labeled_statement "LAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);" statement_identifier : (do_statement "do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);" do (compound_statement "{\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      }" { (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" identifier = identifier) ;) (expression_statement "iVar5 = **(int **)(param_8 + iVar11 * 4);" (assignment_expression "iVar5 = **(int **)(param_8 + iVar11 * 4)" identifier = (pointer_expression "**(int **)(param_8 + iVar11 * 4)" * (pointer_expression "*(int **)(param_8 + iVar11 * 4)" * (cast_expression "(int **)(param_8 + iVar11 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_8 + iVar11 * 4)" ( (binary_expression "param_8 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) )))))) ;) (if_statement "if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }" if (parenthesized_expression "((int *)iVar5 != piVar6)" ( (binary_expression "(int *)iVar5 != piVar6" (cast_expression "(int *)iVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }" { (expression_statement "iVar1 = *local_20;" (assignment_expression "iVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;" (assignment_expression "*(int *)((int)aiStack_60 + iVar3 + 8) = iVar5" (pointer_expression "*(int *)((int)aiStack_60 + iVar3 + 8)" * (cast_expression "(int *)((int)aiStack_60 + iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 8)" ( (binary_expression "(int)aiStack_60 + iVar3 + 8" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar1 + 0x18);" (assignment_expression "pcVar2 = *(code **)(iVar1 + 0x18)" identifier = (pointer_expression "*(code **)(iVar1 + 0x18)" * (cast_expression "(code **)(iVar1 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar5 = (*pcVar2)();" (assignment_expression "iVar5 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }" if (parenthesized_expression "((int *)iVar5 != piVar6)" ( (binary_expression "(int *)iVar5 != piVar6" (cast_expression "(int *)iVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (param_9 == iVar11) break;" if (parenthesized_expression "(param_9 == iVar11)" ( (binary_expression "param_9 == iVar11" identifier == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_002b56b2;" goto statement_identifier ;) })) })) (expression_statement "local_34[uVar14] = iVar11;" (assignment_expression "local_34[uVar14] = iVar11" (subscript_expression "local_34[uVar14]" identifier [ identifier ]) = identifier) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_9 != iVar11)" ( (binary_expression "param_9 != iVar11" identifier != identifier) )) ;)) (expression_statement "piVar12 = local_34;" (assignment_expression "piVar12 = local_34" identifier = identifier) ;) (expression_statement "local_28 = (int *)uVar14;" (assignment_expression "local_28 = (int *)uVar14" identifier = (cast_expression "(int *)uVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }" if (parenthesized_expression "(1 < uVar14)" ( (binary_expression "1 < uVar14" number_literal < identifier) )) (compound_statement "{\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }" { (do_statement "do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);" do (compound_statement "{\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4)" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_8 + *piVar12 * 4)" * (cast_expression "(undefined4 *)(param_8 + *piVar12 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + *piVar12 * 4)" ( (binary_expression "param_8 + *piVar12 * 4" identifier + (binary_expression "*piVar12 * 4" (pointer_expression "*piVar12" * identifier) * number_literal)) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));" (assignment_expression "piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier = (cast_expression "(int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier (argument_list "(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (pointer_expression "*(wchar_t **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(wchar_t **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ))))) ;) (expression_statement "local_20 = piVar12;" (assignment_expression "local_20 = piVar12" identifier = identifier) ;) (do_statement "do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);" do (compound_statement "{\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          }" { (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4)" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_8 + local_20[uVar14] * 4)" * (cast_expression "(undefined4 *)(param_8 + local_20[uVar14] * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + local_20[uVar14] * 4)" ( (binary_expression "param_8 + local_20[uVar14] * 4" identifier + (binary_expression "local_20[uVar14] * 4" (subscript_expression "local_20[uVar14]" identifier [ identifier ]) * number_literal)) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));" (assignment_expression "piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier = (cast_expression "(int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier (argument_list "(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (pointer_expression "*(wchar_t **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(wchar_t **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ))))) ;) (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" identifier = identifier) ;) (if_statement "if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }" if (parenthesized_expression "(piVar6 < piVar4)" ( (binary_expression "piVar6 < piVar4" identifier < identifier) )) (compound_statement "{\n              piVar4 = piVar6;\n            }" { (expression_statement "piVar4 = piVar6;" (assignment_expression "piVar4 = piVar6" identifier = identifier) ;) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar14 < local_28)" ( (binary_expression "uVar14 < local_28" identifier < identifier) )) ;) (if_statement "if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }" if (parenthesized_expression "((uint)local_24[2] < (uint)local_24[3])" ( (binary_expression "(uint)local_24[2] < (uint)local_24[3]" (cast_expression "(uint)local_24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(uint)local_24[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            local_24[2] = local_24[2] + 4;\n          }" { (expression_statement "local_24[2] = local_24[2] + 4;" (assignment_expression "local_24[2] = local_24[2] + 4" (subscript_expression "local_24[2]" identifier [ number_literal ]) = (binary_expression "local_24[2] + 4" (subscript_expression "local_24[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }" else (compound_statement "{\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "local_20 = piVar4;" (assignment_expression "local_20 = piVar4" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x28)" identifier = (pointer_expression "*(code **)(iVar11 + 0x28)" * (cast_expression "(code **)(iVar11 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar4 = local_20;" (assignment_expression "piVar4 = local_20" identifier = identifier) ;) }))) (expression_statement "local_34 = (int *)((int)local_34 + 1);" (assignment_expression "local_34 = (int *)((int)local_34 + 1)" identifier = (cast_expression "(int *)((int)local_34 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + 1)" ( (binary_expression "(int)local_34 + 1" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (piVar4 <= local_34) goto LAB_002b593e;" if (parenthesized_expression "(piVar4 <= local_34)" ( (binary_expression "piVar4 <= local_34" identifier <= identifier) )) (goto_statement "goto LAB_002b593e;" goto statement_identifier ;)) (if_statement "if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }" if (parenthesized_expression "((int *)local_24[2] < (int *)local_24[3])" ( (binary_expression "(int *)local_24[2] < (int *)local_24[3]" (cast_expression "(int *)local_24[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_24[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar11 = *(int *)local_24[2];\n          }" { (expression_statement "iVar11 = *(int *)local_24[2];" (assignment_expression "iVar11 = *(int *)local_24[2]" identifier = (pointer_expression "*(int *)local_24[2]" * (cast_expression "(int *)local_24[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }" else (compound_statement "{\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "bVar7 = iVar11 == -1;" (assignment_expression "bVar7 = iVar11 == -1" identifier = (binary_expression "iVar11 == -1" identifier == number_literal)) ;) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (!bVar7) {\n            piVar4 = local_24;\n          }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (compound_statement "{\n            piVar4 = local_24;\n          }" { (expression_statement "piVar4 = local_24;" (assignment_expression "piVar4 = local_24" identifier = identifier) ;) })) (expression_statement "local_24 = piVar4;" (assignment_expression "local_24 = piVar4" identifier = identifier) ;) (expression_statement "bVar10 = local_3c != (int *)0x0 & (byte)local_38;" (assignment_expression "bVar10 = local_3c != (int *)0x0 & (byte)local_38" identifier = (binary_expression "local_3c != (int *)0x0 & (byte)local_38" (binary_expression "local_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) & (cast_expression "(byte)local_38" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (if_statement "if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }" { (if_statement "if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;" if (parenthesized_expression "(bVar7 == (bool)(byte)local_38)" ( (binary_expression "bVar7 == (bool)(byte)local_38" identifier == (cast_expression "(bool)(byte)local_38" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(byte)local_38" ( (type_descriptor "byte" type_identifier) ) identifier))) )) (goto_statement "goto LAB_002b593e;" goto statement_identifier ;)) }) (else_clause "else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }" else (compound_statement "{\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }" { (if_statement "if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }" if (parenthesized_expression "((int *)local_3c[2] < (int *)local_3c[3])" ( (binary_expression "(int *)local_3c[2] < (int *)local_3c[3]" (cast_expression "(int *)local_3c[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_3c[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }" { (expression_statement "iVar11 = *(int *)local_3c[2];" (assignment_expression "iVar11 = *(int *)local_3c[2]" identifier = (pointer_expression "*(int *)local_3c[2]" * (cast_expression "(int *)local_3c[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[2]" identifier [ number_literal ])))) ;) (expression_statement "local_20._0_1_ = bVar7;" (assignment_expression "local_20._0_1_ = bVar7" (field_expression "local_20._0_1_" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }" else (compound_statement "{\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }" { (expression_statement "local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);" (assignment_expression "local_20 = (int *)CONCAT31(local_20._1_3_,bVar7)" identifier = (cast_expression "(int *)CONCAT31(local_20._1_3_,bVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_20._1_3_,bVar7)" identifier (argument_list "(local_20._1_3_,bVar7)" ( (field_expression "local_20._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "iVar11 = *local_3c;" (assignment_expression "iVar11 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n              piVar4 = local_3c;\n            }" { (expression_statement "piVar4 = local_3c;" (assignment_expression "piVar4 = local_3c" identifier = identifier) ;) })) (expression_statement "local_3c = piVar4;" (assignment_expression "local_3c = piVar4" identifier = identifier) ;) (if_statement "if (iVar11 != -1) {\n              bVar10 = 0;\n            }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n              bVar10 = 0;\n            }" { (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) })) (if_statement "if ((byte)local_20 == bVar10) goto LAB_002b593e;" if (parenthesized_expression "((byte)local_20 == bVar10)" ( (binary_expression "(byte)local_20 == bVar10" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) == identifier) )) (goto_statement "goto LAB_002b593e;" goto statement_identifier ;)) }))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (int)local_34 << 2;" (assignment_expression "local_30 = (int)local_34 << 2" identifier = (binary_expression "(int)local_34 << 2" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (do_statement "do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);" do (compound_statement "{\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          }" { (while_statement "while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }" { (expression_statement "piVar4 = (int *)0xffffffff;" (assignment_expression "piVar4 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);" (assignment_expression "local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" identifier = (pointer_expression "*(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" * (cast_expression "(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" ( (binary_expression "*(int *)(param_8 + piVar12[uVar14] * 4) + local_30" (pointer_expression "*(int *)(param_8 + piVar12[uVar14] * 4)" * (cast_expression "(int *)(param_8 + piVar12[uVar14] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + piVar12[uVar14] * 4)" ( (binary_expression "param_8 + piVar12[uVar14] * 4" identifier + (binary_expression "piVar12[uVar14] * 4" (subscript_expression "piVar12[uVar14]" identifier [ identifier ]) * number_literal)) )))) + identifier) ))))) ;) (if_statement "if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }" if (parenthesized_expression "(local_24 != (int *)0x0)" ( (binary_expression "local_24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }" { (if_statement "if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }" if (parenthesized_expression "((undefined4 *)local_24[2] < (undefined4 *)local_24[3])" ( (binary_expression "(undefined4 *)local_24[2] < (undefined4 *)local_24[3]" (cast_expression "(undefined4 *)local_24[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(undefined4 *)local_24[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                  piVar4 = *(int **)local_24[2];\n                }" { (expression_statement "piVar4 = *(int **)local_24[2];" (assignment_expression "piVar4 = *(int **)local_24[2]" identifier = (pointer_expression "*(int **)local_24[2]" * (cast_expression "(int **)local_24[2]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_24[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }" else (compound_statement "{\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar4 = (int *)(*pcVar2)();" (assignment_expression "piVar4 = (int *)(*pcVar2)()" identifier = (cast_expression "(int *)(*pcVar2)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) }))) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }" if (parenthesized_expression "(piVar4 != (int *)0xffffffff)" ( (binary_expression "piVar4 != (int *)0xffffffff" identifier != (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  piVar6 = local_24;\n                }" { (expression_statement "piVar6 = local_24;" (assignment_expression "piVar6 = local_24" identifier = identifier) ;) })) (expression_statement "local_24 = piVar6;" (assignment_expression "local_24 = piVar6" identifier = identifier) ;) })) (if_statement "if (local_20 != piVar4) break;" if (parenthesized_expression "(local_20 != piVar4)" ( (binary_expression "local_20 != piVar4" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (if_statement "if (local_28 <= uVar14) goto LAB_002b5811;" if (parenthesized_expression "(local_28 <= uVar14)" ( (binary_expression "local_28 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_002b5811;" goto statement_identifier ;)) })) (expression_statement "local_28 = (int *)((int)local_28 - 1);" (assignment_expression "local_28 = (int *)((int)local_28 - 1)" identifier = (cast_expression "(int *)((int)local_28 - 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_28 - 1)" ( (binary_expression "(int)local_28 - 1" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "piVar12[uVar14] = piVar12[(int)local_28];" (assignment_expression "piVar12[uVar14] = piVar12[(int)local_28]" (subscript_expression "piVar12[uVar14]" identifier [ identifier ]) = (subscript_expression "piVar12[(int)local_28]" identifier [ (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }) while (parenthesized_expression "(uVar14 < local_28)" ( (binary_expression "uVar14 < local_28" identifier < identifier) )) ;) (labeled_statement "LAB_002b5811:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "(1 < local_28)" ( (binary_expression "1 < local_28" number_literal < identifier) )) ;) (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;) })) (if_statement "if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }" if (parenthesized_expression "(local_28 == (int *)0x1)" ( (binary_expression "local_28 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }" { (if_statement "if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }" if (parenthesized_expression "((uint)local_24[2] < (uint)local_24[3])" ( (binary_expression "(uint)local_24[2] < (uint)local_24[3]" (cast_expression "(uint)local_24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(uint)local_24[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          local_24[2] = local_24[2] + 4;\n        }" { (expression_statement "local_24[2] = local_24[2] + 4;" (assignment_expression "local_24[2] = local_24[2] + 4" (subscript_expression "local_24[2]" identifier [ number_literal ]) = (binary_expression "local_24[2] + 4" (subscript_expression "local_24[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }" else (compound_statement "{\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "local_20 = piVar12;" (assignment_expression "local_20 = piVar12" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x28)" identifier = (pointer_expression "*(code **)(iVar11 + 0x28)" * (cast_expression "(code **)(iVar11 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" identifier = identifier) ;) }))) (expression_statement "iVar11 = *(int *)(param_8 + *piVar12 * 4);" (assignment_expression "iVar11 = *(int *)(param_8 + *piVar12 * 4)" identifier = (pointer_expression "*(int *)(param_8 + *piVar12 * 4)" * (cast_expression "(int *)(param_8 + *piVar12 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + *piVar12 * 4)" ( (binary_expression "param_8 + *piVar12 * 4" identifier + (binary_expression "*piVar12 * 4" (pointer_expression "*piVar12" * identifier) * number_literal)) ))))) ;) (expression_statement "local_30 = *piVar12;" (assignment_expression "local_30 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "sVar13 = (int)local_34 + 1;" (assignment_expression "sVar13 = (int)local_34 + 1" identifier = (binary_expression "(int)local_34 + 1" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;" (assignment_expression "*(int *)((int)aiStack_60 + iVar3 + 4) = iVar11" (pointer_expression "*(int *)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int *)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));" (assignment_expression "local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier = (cast_expression "(int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier (argument_list "(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (pointer_expression "*(wchar_t **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(wchar_t **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ))))) ;) (expression_statement "piVar12 = local_24;" (assignment_expression "piVar12 = local_24" identifier = identifier) ;) (expression_statement "local_20 = (int *)iVar11;" (assignment_expression "local_20 = (int *)iVar11" identifier = (cast_expression "(int *)iVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }" if (parenthesized_expression "(sVar13 < local_28)" ( (binary_expression "sVar13 < local_28" identifier < identifier) )) (compound_statement "{\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }" { (do_statement "do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);" do (compound_statement "{\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          }" { (if_statement "if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }" if (parenthesized_expression "((int *)piVar12[2] < (int *)piVar12[3])" ( (binary_expression "(int *)piVar12[2] < (int *)piVar12[3]" (cast_expression "(int *)piVar12[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])) < (cast_expression "(int *)piVar12[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar11 = *(int *)piVar12[2];\n            }" { (expression_statement "iVar11 = *(int *)piVar12[2];" (assignment_expression "iVar11 = *(int *)piVar12[2]" identifier = (pointer_expression "*(int *)piVar12[2]" * (cast_expression "(int *)piVar12[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }" else (compound_statement "{\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "bVar10 = iVar11 == -1;" (assignment_expression "bVar10 = iVar11 == -1" identifier = (binary_expression "iVar11 == -1" identifier == number_literal)) ;) (if_statement "if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }" if (parenthesized_expression "((bool)bVar10)" ( (cast_expression "(bool)bVar10" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n              piVar12 = (int *)0x0;\n            }" { (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "bVar8 = local_3c != (int *)0x0 & (byte)local_38;" (assignment_expression "bVar8 = local_3c != (int *)0x0 & (byte)local_38" identifier = (binary_expression "local_3c != (int *)0x0 & (byte)local_38" (binary_expression "local_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) & (cast_expression "(byte)local_38" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "bVar9 = (byte)local_38;" (assignment_expression "bVar9 = (byte)local_38" identifier = (cast_expression "(byte)local_38" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }" { (if_statement "if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }" if (parenthesized_expression "((int *)local_3c[2] < (int *)local_3c[3])" ( (binary_expression "(int *)local_3c[2] < (int *)local_3c[3]" (cast_expression "(int *)local_3c[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_3c[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar11 = *(int *)local_3c[2];\n              }" { (expression_statement "iVar11 = *(int *)local_3c[2];" (assignment_expression "iVar11 = *(int *)local_3c[2]" identifier = (pointer_expression "*(int *)local_3c[2]" * (cast_expression "(int *)local_3c[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }" else (compound_statement "{\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }" { (expression_statement "local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);" (assignment_expression "local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10)" identifier = (cast_expression "(undefined **)CONCAT31(local_2c._1_3_,bVar10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_2c._1_3_,bVar10)" identifier (argument_list "(local_2c._1_3_,bVar10)" ( (field_expression "local_2c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);" (assignment_expression "local_24 = (int *)CONCAT31(local_24._1_3_,bVar8)" identifier = (cast_expression "(int *)CONCAT31(local_24._1_3_,bVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_24._1_3_,bVar8)" identifier (argument_list "(local_24._1_3_,bVar8)" ( (field_expression "local_24._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "iVar11 = *local_3c;" (assignment_expression "iVar11 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar10 = (byte)local_2c;" (assignment_expression "bVar10 = (byte)local_2c" identifier = (cast_expression "(byte)local_2c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar8 = (byte)local_24;" (assignment_expression "bVar8 = (byte)local_24" identifier = (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n                piVar4 = local_3c;\n              }" { (expression_statement "piVar4 = local_3c;" (assignment_expression "piVar4 = local_3c" identifier = identifier) ;) })) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" identifier = identifier) ;) (expression_statement "local_3c = piVar4;" (assignment_expression "local_3c = piVar4" identifier = identifier) ;) (if_statement "if (iVar11 != -1) {\n                bVar9 = 0;\n              }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n                bVar9 = 0;\n              }" { (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" identifier = number_literal) ;) })) })) (if_statement "if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }" if (parenthesized_expression "(bVar9 == bVar10)" ( (binary_expression "bVar9 == bVar10" identifier == identifier) )) (compound_statement "{\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }" { (labeled_statement "LAB_002b5aca:\n              local_30 = -1;" statement_identifier : (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;)) (expression_statement "local_24 = piVar12;" (assignment_expression "local_24 = piVar12" identifier = identifier) ;) (goto_statement "goto LAB_002b563f;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)0xffffffff;" (assignment_expression "piVar6 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar4 = *(int **)((int)local_20 + sVar13 * 4);" (assignment_expression "piVar4 = *(int **)((int)local_20 + sVar13 * 4)" identifier = (pointer_expression "*(int **)((int)local_20 + sVar13 * 4)" * (cast_expression "(int **)((int)local_20 + sVar13 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_20 + sVar13 * 4)" ( (binary_expression "(int)local_20 + sVar13 * 4" (cast_expression "(int)local_20" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "sVar13 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }" { (if_statement "if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }" if (parenthesized_expression "((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3])" ( (binary_expression "(undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]" (cast_expression "(undefined4 *)piVar12[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])) < (cast_expression "(undefined4 *)piVar12[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                piVar6 = *(int **)piVar12[2];\n              }" { (expression_statement "piVar6 = *(int **)piVar12[2];" (assignment_expression "piVar6 = *(int **)piVar12[2]" identifier = (pointer_expression "*(int **)piVar12[2]" * (cast_expression "(int **)piVar12[2]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }" else (compound_statement "{\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "local_24 = piVar4;" (assignment_expression "local_24 = piVar4" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar6 = (int *)(*pcVar2)();" (assignment_expression "piVar6 = (int *)(*pcVar2)()" identifier = (cast_expression "(int *)(*pcVar2)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar4 = local_24;" (assignment_expression "piVar4 = local_24" identifier = identifier) ;) }))) (if_statement "if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }" if (parenthesized_expression "(piVar6 == (int *)0xffffffff)" ( (binary_expression "piVar6 == (int *)0xffffffff" identifier == (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                piVar12 = (int *)0x0;\n              }" { (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (if_statement "if (piVar4 != piVar6) goto LAB_002b5aca;" if (parenthesized_expression "(piVar4 != piVar6)" ( (binary_expression "piVar4 != piVar6" identifier != identifier) )) (goto_statement "goto LAB_002b5aca;" goto statement_identifier ;)) (if_statement "if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }" if (parenthesized_expression "((uint)piVar12[2] < (uint)piVar12[3])" ( (binary_expression "(uint)piVar12[2] < (uint)piVar12[3]" (cast_expression "(uint)piVar12[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])) < (cast_expression "(uint)piVar12[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              piVar12[2] = piVar12[2] + 4;\n            }" { (expression_statement "piVar12[2] = piVar12[2] + 4;" (assignment_expression "piVar12[2] = piVar12[2] + 4" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = (binary_expression "piVar12[2] + 4" (subscript_expression "piVar12[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }" else (compound_statement "{\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x28)" identifier = (pointer_expression "*(code **)(iVar11 + 0x28)" * (cast_expression "(code **)(iVar11 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) }))) (expression_statement "sVar13 = sVar13 + 1;" (assignment_expression "sVar13 = sVar13 + 1" identifier = (binary_expression "sVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar13 < local_28)" ( (binary_expression "sVar13 < local_28" identifier < identifier) )) ;) })) (expression_statement "local_24 = piVar12;" (assignment_expression "local_24 = piVar12" identifier = identifier) ;) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (if_statement "if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }" if (parenthesized_expression "(local_28 == (int *)sVar13)" ( (binary_expression "local_28 == (int *)sVar13" identifier == (cast_expression "(int *)sVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }" { (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;) (expression_statement "*param_7 = iVar3;" (assignment_expression "*param_7 = iVar3" (pointer_expression "*param_7" * identifier) = identifier) ;) (goto_statement "goto LAB_002b5645;" goto statement_identifier ;) })) (labeled_statement "LAB_002b593e:\n        local_30 = -1;" statement_identifier : (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;)) })) })) })) (labeled_statement "LAB_002b563f:\n  *param_11 = *param_11 | 4;" statement_identifier : (expression_statement "*param_11 = *param_11 | 4;" (assignment_expression "*param_11 = *param_11 | 4" (pointer_expression "*param_11" * identifier) = (binary_expression "*param_11 | 4" (pointer_expression "*param_11" * identifier) | number_literal)) ;)) (labeled_statement "LAB_002b5645:\n  *param_1 = local_24;" statement_identifier : (expression_statement "*param_1 = local_24;" (assignment_expression "*param_1 = local_24" (pointer_expression "*param_1" * identifier) = identifier) ;)) (expression_statement "param_1[1] = local_30;" (assignment_expression "param_1[1] = local_30" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::_M_extract_name(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,\n   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, int&, wchar_t const**, unsigned\n   int, std::ios_base&, std::_Ios_Iostate&) const */\n\nvoid std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n     _M_extract_name(void)\n\n{\n}\n\n" comment comment (ERROR "void std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n     _M_extract_name(void)" primitive_type (ERROR "std::time_get<" identifier : : identifier <) identifier , (ERROR "std::istreambuf_iterator<" identifier : : identifier <) identifier , (ERROR "std::char_traits<wchar_t>>>::" identifier : : identifier < identifier >> > : :) (function_declarator "_M_extract_name(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n}" { }))
(translation_unit "void FUN_002b55a0(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)\n\n{\n  int iVar1;\n  code *pcVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int *piVar6;\n  bool bVar7;\n  byte bVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  bool bVar16;\n  int aiStack_60 [8];\n  int *local_40;\n  int *local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  undefined **local_2c;\n  int *local_28;\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2b55ab;\n  local_2c = &__DT_PLTGOT;\n  local_28 = param_5;\n  local_3c = param_5;\n  local_34 = (int *)param_4;\n  local_30 = param_4;\n  aiStack_60[1] = param_10 + 0x6c;\n  local_38 = param_6;\n  local_24 = param_3;\n  aiStack_60[0] = 0x2b55e1;\n  piVar4 = (int *)FUN_0029d640();\n  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);\n  piVar12 = (int *)((int)&local_40 + iVar3);\n  cVar15 = local_34 == (int *)0xffffffff;\n  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);\n  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;\n  if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }\n  bVar16 = local_38 == -1;\n  local_38 = CONCAT31(local_38._1_3_,bVar16);\n  bVar7 = local_28 != (int *)0x0 && bVar16;\n  if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }\n  if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }\nLAB_002b563f:\n  *param_11 = *param_11 | 4;\nLAB_002b5645:\n  *param_1 = local_24;\n  param_1[1] = local_30;\n  return;\n}\n\n" (function_definition "void FUN_002b55a0(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)\n\n{\n  int iVar1;\n  code *pcVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int *piVar6;\n  bool bVar7;\n  byte bVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  bool bVar16;\n  int aiStack_60 [8];\n  int *local_40;\n  int *local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  undefined **local_2c;\n  int *local_28;\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2b55ab;\n  local_2c = &__DT_PLTGOT;\n  local_28 = param_5;\n  local_3c = param_5;\n  local_34 = (int *)param_4;\n  local_30 = param_4;\n  aiStack_60[1] = param_10 + 0x6c;\n  local_38 = param_6;\n  local_24 = param_3;\n  aiStack_60[0] = 0x2b55e1;\n  piVar4 = (int *)FUN_0029d640();\n  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);\n  piVar12 = (int *)((int)&local_40 + iVar3);\n  cVar15 = local_34 == (int *)0xffffffff;\n  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);\n  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;\n  if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }\n  bVar16 = local_38 == -1;\n  local_38 = CONCAT31(local_38._1_3_,bVar16);\n  bVar7 = local_28 != (int *)0x0 && bVar16;\n  if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }\n  if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }\nLAB_002b563f:\n  *param_11 = *param_11 | 4;\nLAB_002b5645:\n  *param_1 = local_24;\n  param_1[1] = local_30;\n  return;\n}" primitive_type (function_declarator "FUN_002b55a0(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "uint *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  code *pcVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int *piVar6;\n  bool bVar7;\n  byte bVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  bool bVar16;\n  int aiStack_60 [8];\n  int *local_40;\n  int *local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  undefined **local_2c;\n  int *local_28;\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2b55ab;\n  local_2c = &__DT_PLTGOT;\n  local_28 = param_5;\n  local_3c = param_5;\n  local_34 = (int *)param_4;\n  local_30 = param_4;\n  aiStack_60[1] = param_10 + 0x6c;\n  local_38 = param_6;\n  local_24 = param_3;\n  aiStack_60[0] = 0x2b55e1;\n  piVar4 = (int *)FUN_0029d640();\n  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);\n  piVar12 = (int *)((int)&local_40 + iVar3);\n  cVar15 = local_34 == (int *)0xffffffff;\n  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);\n  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;\n  if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }\n  bVar16 = local_38 == -1;\n  local_38 = CONCAT31(local_38._1_3_,bVar16);\n  bVar7 = local_28 != (int *)0x0 && bVar16;\n  if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }\n  if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }\nLAB_002b563f:\n  *param_11 = *param_11 | 4;\nLAB_002b5645:\n  *param_1 = local_24;\n  param_1[1] = local_30;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "int aiStack_60 [8];" primitive_type (array_declarator "aiStack_60 [8]" identifier [ number_literal ]) ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)) ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2b55ab;" (assignment_expression "uStack_14 = 0x2b55ab" identifier = number_literal) ;) (expression_statement "local_2c = &__DT_PLTGOT;" (assignment_expression "local_2c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_28 = param_5;" (assignment_expression "local_28 = param_5" identifier = identifier) ;) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" identifier = identifier) ;) (expression_statement "local_34 = (int *)param_4;" (assignment_expression "local_34 = (int *)param_4" identifier = (cast_expression "(int *)param_4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_30 = param_4;" (assignment_expression "local_30 = param_4" identifier = identifier) ;) (expression_statement "aiStack_60[1] = param_10 + 0x6c;" (assignment_expression "aiStack_60[1] = param_10 + 0x6c" (subscript_expression "aiStack_60[1]" identifier [ number_literal ]) = (binary_expression "param_10 + 0x6c" identifier + number_literal)) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" identifier = identifier) ;) (expression_statement "aiStack_60[0] = 0x2b55e1;" (assignment_expression "aiStack_60[0] = 0x2b55e1" (subscript_expression "aiStack_60[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4 = (int *)FUN_0029d640();" (assignment_expression "piVar4 = (int *)FUN_0029d640()" identifier = (cast_expression "(int *)FUN_0029d640()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0029d640()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);" (assignment_expression "iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0)" identifier = (unary_expression "-(param_9 * 4 + 0x1bU & 0xfffffff0)" - (parenthesized_expression "(param_9 * 4 + 0x1bU & 0xfffffff0)" ( (binary_expression "param_9 * 4 + 0x1bU & 0xfffffff0" (binary_expression "param_9 * 4 + 0x1bU" (binary_expression "param_9 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "piVar12 = (int *)((int)&local_40 + iVar3);" (assignment_expression "piVar12 = (int *)((int)&local_40 + iVar3)" identifier = (cast_expression "(int *)((int)&local_40 + iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_40 + iVar3)" ( (binary_expression "(int)&local_40 + iVar3" (cast_expression "(int)&local_40" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_40" & identifier)) + identifier) )))) ;) (expression_statement "cVar15 = local_34 == (int *)0xffffffff;" (assignment_expression "cVar15 = local_34 == (int *)0xffffffff" identifier = (binary_expression "local_34 == (int *)0xffffffff" identifier == (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);" (assignment_expression "local_20 = (int *)CONCAT31(local_20._1_3_,cVar15)" identifier = (cast_expression "(int *)CONCAT31(local_20._1_3_,cVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_20._1_3_,cVar15)" identifier (argument_list "(local_20._1_3_,cVar15)" ( (field_expression "local_20._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "bVar7 = param_3 != (int *)0x0 && (bool)cVar15;" (assignment_expression "bVar7 = param_3 != (int *)0x0 && (bool)cVar15" identifier = (binary_expression "param_3 != (int *)0x0 && (bool)cVar15" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }" { (expression_statement "iVar11 = *(int *)param_3[2];" (assignment_expression "iVar11 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (expression_statement "local_24._0_1_ = bVar7;" (assignment_expression "local_24._0_1_ = bVar7" (field_expression "local_24._0_1_" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }" else (compound_statement "{\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }" { (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_40 = piVar12;" (assignment_expression "local_40 = piVar12" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = param_3;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = param_3" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);" (assignment_expression "local_24 = (int *)CONCAT31(local_24._1_3_,bVar7)" identifier = (cast_expression "(int *)CONCAT31(local_24._1_3_,bVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_24._1_3_,bVar7)" identifier (argument_list "(local_24._1_3_,bVar7)" ( (field_expression "local_24._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "piVar12 = local_40;" (assignment_expression "piVar12 = local_40" identifier = identifier) ;) }))) (expression_statement "cVar15 = (byte)local_24;" (assignment_expression "cVar15 = (byte)local_24" identifier = (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n      cVar15 = '\0';\n      local_24 = param_3;\n    }" { (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" identifier = identifier) ;) })) })) (expression_statement "bVar16 = local_38 == -1;" (assignment_expression "bVar16 = local_38 == -1" identifier = (binary_expression "local_38 == -1" identifier == number_literal)) ;) (expression_statement "local_38 = CONCAT31(local_38._1_3_,bVar16);" (assignment_expression "local_38 = CONCAT31(local_38._1_3_,bVar16)" identifier = (call_expression "CONCAT31(local_38._1_3_,bVar16)" identifier (argument_list "(local_38._1_3_,bVar16)" ( (field_expression "local_38._1_3_" identifier . field_identifier) , identifier )))) ;) (expression_statement "bVar7 = local_28 != (int *)0x0 && bVar16;" (assignment_expression "bVar7 = local_28 != (int *)0x0 && bVar16" identifier = (binary_expression "local_28 != (int *)0x0 && bVar16" (binary_expression "local_28 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && identifier)) ;) (if_statement "if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }" { (if_statement "if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }" if (parenthesized_expression "((int *)local_28[2] < (int *)local_28[3])" ( (binary_expression "(int *)local_28[2] < (int *)local_28[3]" (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_28[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar11 = *(int *)local_28[2];\n    }" { (expression_statement "iVar11 = *(int *)local_28[2];" (assignment_expression "iVar11 = *(int *)local_28[2]" identifier = (pointer_expression "*(int *)local_28[2]" * (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }" else (compound_statement "{\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }" { (expression_statement "local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);" (assignment_expression "local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15)" identifier = (cast_expression "(int *)CONCAT31(local_3c._1_3_,cVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_3c._1_3_,cVar15)" identifier (argument_list "(local_3c._1_3_,cVar15)" ( (field_expression "local_3c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "iVar11 = *local_28;" (assignment_expression "iVar11 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "local_40 = piVar12;" (assignment_expression "local_40 = piVar12" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_28;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_28" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "piVar12 = local_40;" (assignment_expression "piVar12 = local_40" identifier = identifier) ;) (expression_statement "cVar15 = (char)local_3c;" (assignment_expression "cVar15 = (char)local_3c" identifier = (cast_expression "(char)local_3c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "local_3c = (int *)0x0;" (assignment_expression "local_3c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar11 != -1) {\n      local_3c = local_28;\n    }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n      local_3c = local_28;\n    }" { (expression_statement "local_3c = local_28;" (assignment_expression "local_3c = local_28" identifier = identifier) ;) })) (expression_statement "bVar16 = iVar11 == -1 && bVar7;" (assignment_expression "bVar16 = iVar11 == -1 && bVar7" identifier = (binary_expression "iVar11 == -1 && bVar7" (binary_expression "iVar11 == -1" identifier == number_literal) && identifier)) ;) })) (if_statement "if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }" if (parenthesized_expression "(bVar16 != (bool)cVar15)" ( (binary_expression "bVar16 != (bool)cVar15" identifier != (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }" { (expression_statement "piVar6 = local_34;" (assignment_expression "piVar6 = local_34" identifier = identifier) ;) (if_statement "if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }" if (parenthesized_expression "((local_24 != (int *)0x0) && ((byte)local_20 != '\0'))" ( (binary_expression "(local_24 != (int *)0x0) && ((byte)local_20 != '\0')" (parenthesized_expression "(local_24 != (int *)0x0)" ( (binary_expression "local_24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((byte)local_20 != '\0')" ( (binary_expression "(byte)local_20 != '\0'" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }" { (expression_statement "local_20 = piVar12;" (assignment_expression "local_20 = piVar12" identifier = identifier) ;) (if_statement "if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }" if (parenthesized_expression "((int *)local_24[2] < (int *)local_24[3])" ( (binary_expression "(int *)local_24[2] < (int *)local_24[3]" (cast_expression "(int *)local_24[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_24[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        piVar6 = *(int **)local_24[2];\n      }" { (expression_statement "piVar6 = *(int **)local_24[2];" (assignment_expression "piVar6 = *(int **)local_24[2]" identifier = (pointer_expression "*(int **)local_24[2]" * (cast_expression "(int **)local_24[2]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_24[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }" else (compound_statement "{\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar6 = (int *)(*pcVar2)();" (assignment_expression "piVar6 = (int *)(*pcVar2)()" identifier = (cast_expression "(int *)(*pcVar2)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) }))) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }" if (parenthesized_expression "(piVar6 != (int *)0xffffffff)" ( (binary_expression "piVar6 != (int *)0xffffffff" identifier != (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar12 = local_24;\n      }" { (expression_statement "piVar12 = local_24;" (assignment_expression "piVar12 = local_24" identifier = identifier) ;) })) (expression_statement "local_24 = piVar12;" (assignment_expression "local_24 = piVar12" identifier = identifier) ;) (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" identifier = identifier) ;) })) (if_statement "if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (compound_statement "{\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }" { (expression_statement "local_20 = piVar4;" (assignment_expression "local_20 = piVar4" identifier = identifier) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_34 = piVar12;" (assignment_expression "local_34 = piVar12" identifier = identifier) ;) (labeled_statement "LAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);" statement_identifier : (do_statement "do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);" do (compound_statement "{\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      }" { (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" identifier = identifier) ;) (expression_statement "iVar5 = **(int **)(param_8 + iVar11 * 4);" (assignment_expression "iVar5 = **(int **)(param_8 + iVar11 * 4)" identifier = (pointer_expression "**(int **)(param_8 + iVar11 * 4)" * (pointer_expression "*(int **)(param_8 + iVar11 * 4)" * (cast_expression "(int **)(param_8 + iVar11 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_8 + iVar11 * 4)" ( (binary_expression "param_8 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) )))))) ;) (if_statement "if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }" if (parenthesized_expression "((int *)iVar5 != piVar6)" ( (binary_expression "(int *)iVar5 != piVar6" (cast_expression "(int *)iVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }" { (expression_statement "iVar1 = *local_20;" (assignment_expression "iVar1 = *local_20" identifier = (pointer_expression "*local_20" * identifier)) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;" (assignment_expression "*(int *)((int)aiStack_60 + iVar3 + 8) = iVar5" (pointer_expression "*(int *)((int)aiStack_60 + iVar3 + 8)" * (cast_expression "(int *)((int)aiStack_60 + iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 8)" ( (binary_expression "(int)aiStack_60 + iVar3 + 8" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar1 + 0x18);" (assignment_expression "pcVar2 = *(code **)(iVar1 + 0x18)" identifier = (pointer_expression "*(code **)(iVar1 + 0x18)" * (cast_expression "(code **)(iVar1 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar5 = (*pcVar2)();" (assignment_expression "iVar5 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }" if (parenthesized_expression "((int *)iVar5 != piVar6)" ( (binary_expression "(int *)iVar5 != piVar6" (cast_expression "(int *)iVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (param_9 == iVar11) break;" if (parenthesized_expression "(param_9 == iVar11)" ( (binary_expression "param_9 == iVar11" identifier == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_002b56b2;" goto statement_identifier ;) })) })) (expression_statement "local_34[uVar14] = iVar11;" (assignment_expression "local_34[uVar14] = iVar11" (subscript_expression "local_34[uVar14]" identifier [ identifier ]) = identifier) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_9 != iVar11)" ( (binary_expression "param_9 != iVar11" identifier != identifier) )) ;)) (expression_statement "piVar12 = local_34;" (assignment_expression "piVar12 = local_34" identifier = identifier) ;) (expression_statement "local_28 = (int *)uVar14;" (assignment_expression "local_28 = (int *)uVar14" identifier = (cast_expression "(int *)uVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }" if (parenthesized_expression "(1 < uVar14)" ( (binary_expression "1 < uVar14" number_literal < identifier) )) (compound_statement "{\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }" { (do_statement "do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);" do (compound_statement "{\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4)" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_8 + *piVar12 * 4)" * (cast_expression "(undefined4 *)(param_8 + *piVar12 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + *piVar12 * 4)" ( (binary_expression "param_8 + *piVar12 * 4" identifier + (binary_expression "*piVar12 * 4" (pointer_expression "*piVar12" * identifier) * number_literal)) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));" (assignment_expression "piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier = (cast_expression "(int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier (argument_list "(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (pointer_expression "*(wchar_t **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(wchar_t **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ))))) ;) (expression_statement "local_20 = piVar12;" (assignment_expression "local_20 = piVar12" identifier = identifier) ;) (do_statement "do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);" do (compound_statement "{\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          }" { (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4)" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_8 + local_20[uVar14] * 4)" * (cast_expression "(undefined4 *)(param_8 + local_20[uVar14] * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + local_20[uVar14] * 4)" ( (binary_expression "param_8 + local_20[uVar14] * 4" identifier + (binary_expression "local_20[uVar14] * 4" (subscript_expression "local_20[uVar14]" identifier [ identifier ]) * number_literal)) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));" (assignment_expression "piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier = (cast_expression "(int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier (argument_list "(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (pointer_expression "*(wchar_t **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(wchar_t **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ))))) ;) (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" identifier = identifier) ;) (if_statement "if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }" if (parenthesized_expression "(piVar6 < piVar4)" ( (binary_expression "piVar6 < piVar4" identifier < identifier) )) (compound_statement "{\n              piVar4 = piVar6;\n            }" { (expression_statement "piVar4 = piVar6;" (assignment_expression "piVar4 = piVar6" identifier = identifier) ;) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar14 < local_28)" ( (binary_expression "uVar14 < local_28" identifier < identifier) )) ;) (if_statement "if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }" if (parenthesized_expression "((uint)local_24[2] < (uint)local_24[3])" ( (binary_expression "(uint)local_24[2] < (uint)local_24[3]" (cast_expression "(uint)local_24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(uint)local_24[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            local_24[2] = local_24[2] + 4;\n          }" { (expression_statement "local_24[2] = local_24[2] + 4;" (assignment_expression "local_24[2] = local_24[2] + 4" (subscript_expression "local_24[2]" identifier [ number_literal ]) = (binary_expression "local_24[2] + 4" (subscript_expression "local_24[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }" else (compound_statement "{\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "local_20 = piVar4;" (assignment_expression "local_20 = piVar4" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x28)" identifier = (pointer_expression "*(code **)(iVar11 + 0x28)" * (cast_expression "(code **)(iVar11 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar4 = local_20;" (assignment_expression "piVar4 = local_20" identifier = identifier) ;) }))) (expression_statement "local_34 = (int *)((int)local_34 + 1);" (assignment_expression "local_34 = (int *)((int)local_34 + 1)" identifier = (cast_expression "(int *)((int)local_34 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + 1)" ( (binary_expression "(int)local_34 + 1" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (piVar4 <= local_34) goto LAB_002b593e;" if (parenthesized_expression "(piVar4 <= local_34)" ( (binary_expression "piVar4 <= local_34" identifier <= identifier) )) (goto_statement "goto LAB_002b593e;" goto statement_identifier ;)) (if_statement "if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }" if (parenthesized_expression "((int *)local_24[2] < (int *)local_24[3])" ( (binary_expression "(int *)local_24[2] < (int *)local_24[3]" (cast_expression "(int *)local_24[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_24[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar11 = *(int *)local_24[2];\n          }" { (expression_statement "iVar11 = *(int *)local_24[2];" (assignment_expression "iVar11 = *(int *)local_24[2]" identifier = (pointer_expression "*(int *)local_24[2]" * (cast_expression "(int *)local_24[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }" else (compound_statement "{\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "bVar7 = iVar11 == -1;" (assignment_expression "bVar7 = iVar11 == -1" identifier = (binary_expression "iVar11 == -1" identifier == number_literal)) ;) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (!bVar7) {\n            piVar4 = local_24;\n          }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (compound_statement "{\n            piVar4 = local_24;\n          }" { (expression_statement "piVar4 = local_24;" (assignment_expression "piVar4 = local_24" identifier = identifier) ;) })) (expression_statement "local_24 = piVar4;" (assignment_expression "local_24 = piVar4" identifier = identifier) ;) (expression_statement "bVar10 = local_3c != (int *)0x0 & (byte)local_38;" (assignment_expression "bVar10 = local_3c != (int *)0x0 & (byte)local_38" identifier = (binary_expression "local_3c != (int *)0x0 & (byte)local_38" (binary_expression "local_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) & (cast_expression "(byte)local_38" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (if_statement "if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }" { (if_statement "if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;" if (parenthesized_expression "(bVar7 == (bool)(byte)local_38)" ( (binary_expression "bVar7 == (bool)(byte)local_38" identifier == (cast_expression "(bool)(byte)local_38" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(byte)local_38" ( (type_descriptor "byte" type_identifier) ) identifier))) )) (goto_statement "goto LAB_002b593e;" goto statement_identifier ;)) }) (else_clause "else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }" else (compound_statement "{\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }" { (if_statement "if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }" if (parenthesized_expression "((int *)local_3c[2] < (int *)local_3c[3])" ( (binary_expression "(int *)local_3c[2] < (int *)local_3c[3]" (cast_expression "(int *)local_3c[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_3c[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }" { (expression_statement "iVar11 = *(int *)local_3c[2];" (assignment_expression "iVar11 = *(int *)local_3c[2]" identifier = (pointer_expression "*(int *)local_3c[2]" * (cast_expression "(int *)local_3c[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[2]" identifier [ number_literal ])))) ;) (expression_statement "local_20._0_1_ = bVar7;" (assignment_expression "local_20._0_1_ = bVar7" (field_expression "local_20._0_1_" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }" else (compound_statement "{\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }" { (expression_statement "local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);" (assignment_expression "local_20 = (int *)CONCAT31(local_20._1_3_,bVar7)" identifier = (cast_expression "(int *)CONCAT31(local_20._1_3_,bVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_20._1_3_,bVar7)" identifier (argument_list "(local_20._1_3_,bVar7)" ( (field_expression "local_20._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "iVar11 = *local_3c;" (assignment_expression "iVar11 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n              piVar4 = local_3c;\n            }" { (expression_statement "piVar4 = local_3c;" (assignment_expression "piVar4 = local_3c" identifier = identifier) ;) })) (expression_statement "local_3c = piVar4;" (assignment_expression "local_3c = piVar4" identifier = identifier) ;) (if_statement "if (iVar11 != -1) {\n              bVar10 = 0;\n            }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n              bVar10 = 0;\n            }" { (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) })) (if_statement "if ((byte)local_20 == bVar10) goto LAB_002b593e;" if (parenthesized_expression "((byte)local_20 == bVar10)" ( (binary_expression "(byte)local_20 == bVar10" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) == identifier) )) (goto_statement "goto LAB_002b593e;" goto statement_identifier ;)) }))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (int)local_34 << 2;" (assignment_expression "local_30 = (int)local_34 << 2" identifier = (binary_expression "(int)local_34 << 2" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (do_statement "do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);" do (compound_statement "{\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          }" { (while_statement "while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }" { (expression_statement "piVar4 = (int *)0xffffffff;" (assignment_expression "piVar4 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);" (assignment_expression "local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" identifier = (pointer_expression "*(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" * (cast_expression "(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" ( (binary_expression "*(int *)(param_8 + piVar12[uVar14] * 4) + local_30" (pointer_expression "*(int *)(param_8 + piVar12[uVar14] * 4)" * (cast_expression "(int *)(param_8 + piVar12[uVar14] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + piVar12[uVar14] * 4)" ( (binary_expression "param_8 + piVar12[uVar14] * 4" identifier + (binary_expression "piVar12[uVar14] * 4" (subscript_expression "piVar12[uVar14]" identifier [ identifier ]) * number_literal)) )))) + identifier) ))))) ;) (if_statement "if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }" if (parenthesized_expression "(local_24 != (int *)0x0)" ( (binary_expression "local_24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }" { (if_statement "if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }" if (parenthesized_expression "((undefined4 *)local_24[2] < (undefined4 *)local_24[3])" ( (binary_expression "(undefined4 *)local_24[2] < (undefined4 *)local_24[3]" (cast_expression "(undefined4 *)local_24[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(undefined4 *)local_24[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                  piVar4 = *(int **)local_24[2];\n                }" { (expression_statement "piVar4 = *(int **)local_24[2];" (assignment_expression "piVar4 = *(int **)local_24[2]" identifier = (pointer_expression "*(int **)local_24[2]" * (cast_expression "(int **)local_24[2]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_24[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }" else (compound_statement "{\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar4 = (int *)(*pcVar2)();" (assignment_expression "piVar4 = (int *)(*pcVar2)()" identifier = (cast_expression "(int *)(*pcVar2)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) }))) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }" if (parenthesized_expression "(piVar4 != (int *)0xffffffff)" ( (binary_expression "piVar4 != (int *)0xffffffff" identifier != (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  piVar6 = local_24;\n                }" { (expression_statement "piVar6 = local_24;" (assignment_expression "piVar6 = local_24" identifier = identifier) ;) })) (expression_statement "local_24 = piVar6;" (assignment_expression "local_24 = piVar6" identifier = identifier) ;) })) (if_statement "if (local_20 != piVar4) break;" if (parenthesized_expression "(local_20 != piVar4)" ( (binary_expression "local_20 != piVar4" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (if_statement "if (local_28 <= uVar14) goto LAB_002b5811;" if (parenthesized_expression "(local_28 <= uVar14)" ( (binary_expression "local_28 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_002b5811;" goto statement_identifier ;)) })) (expression_statement "local_28 = (int *)((int)local_28 - 1);" (assignment_expression "local_28 = (int *)((int)local_28 - 1)" identifier = (cast_expression "(int *)((int)local_28 - 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_28 - 1)" ( (binary_expression "(int)local_28 - 1" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "piVar12[uVar14] = piVar12[(int)local_28];" (assignment_expression "piVar12[uVar14] = piVar12[(int)local_28]" (subscript_expression "piVar12[uVar14]" identifier [ identifier ]) = (subscript_expression "piVar12[(int)local_28]" identifier [ (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }) while (parenthesized_expression "(uVar14 < local_28)" ( (binary_expression "uVar14 < local_28" identifier < identifier) )) ;) (labeled_statement "LAB_002b5811:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "(1 < local_28)" ( (binary_expression "1 < local_28" number_literal < identifier) )) ;) (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;) })) (if_statement "if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }" if (parenthesized_expression "(local_28 == (int *)0x1)" ( (binary_expression "local_28 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }" { (if_statement "if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }" if (parenthesized_expression "((uint)local_24[2] < (uint)local_24[3])" ( (binary_expression "(uint)local_24[2] < (uint)local_24[3]" (cast_expression "(uint)local_24[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_24[2]" identifier [ number_literal ])) < (cast_expression "(uint)local_24[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_24[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          local_24[2] = local_24[2] + 4;\n        }" { (expression_statement "local_24[2] = local_24[2] + 4;" (assignment_expression "local_24[2] = local_24[2] + 4" (subscript_expression "local_24[2]" identifier [ number_literal ]) = (binary_expression "local_24[2] + 4" (subscript_expression "local_24[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }" else (compound_statement "{\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }" { (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (expression_statement "local_20 = piVar12;" (assignment_expression "local_20 = piVar12" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x28)" identifier = (pointer_expression "*(code **)(iVar11 + 0x28)" * (cast_expression "(code **)(iVar11 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" identifier = identifier) ;) }))) (expression_statement "iVar11 = *(int *)(param_8 + *piVar12 * 4);" (assignment_expression "iVar11 = *(int *)(param_8 + *piVar12 * 4)" identifier = (pointer_expression "*(int *)(param_8 + *piVar12 * 4)" * (cast_expression "(int *)(param_8 + *piVar12 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + *piVar12 * 4)" ( (binary_expression "param_8 + *piVar12 * 4" identifier + (binary_expression "*piVar12 * 4" (pointer_expression "*piVar12" * identifier) * number_literal)) ))))) ;) (expression_statement "local_30 = *piVar12;" (assignment_expression "local_30 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "sVar13 = (int)local_34 + 1;" (assignment_expression "sVar13 = (int)local_34 + 1" identifier = (binary_expression "(int)local_34 + 1" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;" (assignment_expression "*(int *)((int)aiStack_60 + iVar3 + 4) = iVar11" (pointer_expression "*(int *)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int *)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));" (assignment_expression "local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier = (cast_expression "(int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" identifier (argument_list "(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" ( (pointer_expression "*(wchar_t **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(wchar_t **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ))))) ;) (expression_statement "piVar12 = local_24;" (assignment_expression "piVar12 = local_24" identifier = identifier) ;) (expression_statement "local_20 = (int *)iVar11;" (assignment_expression "local_20 = (int *)iVar11" identifier = (cast_expression "(int *)iVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }" if (parenthesized_expression "(sVar13 < local_28)" ( (binary_expression "sVar13 < local_28" identifier < identifier) )) (compound_statement "{\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }" { (do_statement "do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);" do (compound_statement "{\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          }" { (if_statement "if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }" if (parenthesized_expression "((int *)piVar12[2] < (int *)piVar12[3])" ( (binary_expression "(int *)piVar12[2] < (int *)piVar12[3]" (cast_expression "(int *)piVar12[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])) < (cast_expression "(int *)piVar12[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar11 = *(int *)piVar12[2];\n            }" { (expression_statement "iVar11 = *(int *)piVar12[2];" (assignment_expression "iVar11 = *(int *)piVar12[2]" identifier = (pointer_expression "*(int *)piVar12[2]" * (cast_expression "(int *)piVar12[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }" else (compound_statement "{\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "bVar10 = iVar11 == -1;" (assignment_expression "bVar10 = iVar11 == -1" identifier = (binary_expression "iVar11 == -1" identifier == number_literal)) ;) (if_statement "if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }" if (parenthesized_expression "((bool)bVar10)" ( (cast_expression "(bool)bVar10" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n              piVar12 = (int *)0x0;\n            }" { (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "bVar8 = local_3c != (int *)0x0 & (byte)local_38;" (assignment_expression "bVar8 = local_3c != (int *)0x0 & (byte)local_38" identifier = (binary_expression "local_3c != (int *)0x0 & (byte)local_38" (binary_expression "local_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) & (cast_expression "(byte)local_38" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "bVar9 = (byte)local_38;" (assignment_expression "bVar9 = (byte)local_38" identifier = (cast_expression "(byte)local_38" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }" { (if_statement "if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }" if (parenthesized_expression "((int *)local_3c[2] < (int *)local_3c[3])" ( (binary_expression "(int *)local_3c[2] < (int *)local_3c[3]" (cast_expression "(int *)local_3c[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_3c[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar11 = *(int *)local_3c[2];\n              }" { (expression_statement "iVar11 = *(int *)local_3c[2];" (assignment_expression "iVar11 = *(int *)local_3c[2]" identifier = (pointer_expression "*(int *)local_3c[2]" * (cast_expression "(int *)local_3c[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_3c[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }" else (compound_statement "{\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }" { (expression_statement "local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);" (assignment_expression "local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10)" identifier = (cast_expression "(undefined **)CONCAT31(local_2c._1_3_,bVar10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_2c._1_3_,bVar10)" identifier (argument_list "(local_2c._1_3_,bVar10)" ( (field_expression "local_2c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);" (assignment_expression "local_24 = (int *)CONCAT31(local_24._1_3_,bVar8)" identifier = (cast_expression "(int *)CONCAT31(local_24._1_3_,bVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_24._1_3_,bVar8)" identifier (argument_list "(local_24._1_3_,bVar8)" ( (field_expression "local_24._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "iVar11 = *local_3c;" (assignment_expression "iVar11 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar10 = (byte)local_2c;" (assignment_expression "bVar10 = (byte)local_2c" identifier = (cast_expression "(byte)local_2c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar8 = (byte)local_24;" (assignment_expression "bVar8 = (byte)local_24" identifier = (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n                piVar4 = local_3c;\n              }" { (expression_statement "piVar4 = local_3c;" (assignment_expression "piVar4 = local_3c" identifier = identifier) ;) })) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" identifier = identifier) ;) (expression_statement "local_3c = piVar4;" (assignment_expression "local_3c = piVar4" identifier = identifier) ;) (if_statement "if (iVar11 != -1) {\n                bVar9 = 0;\n              }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n                bVar9 = 0;\n              }" { (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" identifier = number_literal) ;) })) })) (if_statement "if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }" if (parenthesized_expression "(bVar9 == bVar10)" ( (binary_expression "bVar9 == bVar10" identifier == identifier) )) (compound_statement "{\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }" { (labeled_statement "LAB_002b5aca:\n              local_30 = -1;" statement_identifier : (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;)) (expression_statement "local_24 = piVar12;" (assignment_expression "local_24 = piVar12" identifier = identifier) ;) (goto_statement "goto LAB_002b563f;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)0xffffffff;" (assignment_expression "piVar6 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar4 = *(int **)((int)local_20 + sVar13 * 4);" (assignment_expression "piVar4 = *(int **)((int)local_20 + sVar13 * 4)" identifier = (pointer_expression "*(int **)((int)local_20 + sVar13 * 4)" * (cast_expression "(int **)((int)local_20 + sVar13 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_20 + sVar13 * 4)" ( (binary_expression "(int)local_20 + sVar13 * 4" (cast_expression "(int)local_20" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "sVar13 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }" { (if_statement "if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }" if (parenthesized_expression "((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3])" ( (binary_expression "(undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]" (cast_expression "(undefined4 *)piVar12[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])) < (cast_expression "(undefined4 *)piVar12[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                piVar6 = *(int **)piVar12[2];\n              }" { (expression_statement "piVar6 = *(int **)piVar12[2];" (assignment_expression "piVar6 = *(int **)piVar12[2]" identifier = (pointer_expression "*(int **)piVar12[2]" * (cast_expression "(int **)piVar12[2]" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }" else (compound_statement "{\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "local_24 = piVar4;" (assignment_expression "local_24 = piVar4" identifier = identifier) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar6 = (int *)(*pcVar2)();" (assignment_expression "piVar6 = (int *)(*pcVar2)()" identifier = (cast_expression "(int *)(*pcVar2)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar4 = local_24;" (assignment_expression "piVar4 = local_24" identifier = identifier) ;) }))) (if_statement "if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }" if (parenthesized_expression "(piVar6 == (int *)0xffffffff)" ( (binary_expression "piVar6 == (int *)0xffffffff" identifier == (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                piVar12 = (int *)0x0;\n              }" { (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (if_statement "if (piVar4 != piVar6) goto LAB_002b5aca;" if (parenthesized_expression "(piVar4 != piVar6)" ( (binary_expression "piVar4 != piVar6" identifier != identifier) )) (goto_statement "goto LAB_002b5aca;" goto statement_identifier ;)) (if_statement "if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }" if (parenthesized_expression "((uint)piVar12[2] < (uint)piVar12[3])" ( (binary_expression "(uint)piVar12[2] < (uint)piVar12[3]" (cast_expression "(uint)piVar12[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[2]" identifier [ number_literal ])) < (cast_expression "(uint)piVar12[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              piVar12[2] = piVar12[2] + 4;\n            }" { (expression_statement "piVar12[2] = piVar12[2] + 4;" (assignment_expression "piVar12[2] = piVar12[2] + 4" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = (binary_expression "piVar12[2] + 4" (subscript_expression "piVar12[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }" else (compound_statement "{\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }" { (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" * (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" ( (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x28)" identifier = (pointer_expression "*(code **)(iVar11 + 0x28)" * (cast_expression "(code **)(iVar11 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" * (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_60 + iVar3)" ( (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) }))) (expression_statement "sVar13 = sVar13 + 1;" (assignment_expression "sVar13 = sVar13 + 1" identifier = (binary_expression "sVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar13 < local_28)" ( (binary_expression "sVar13 < local_28" identifier < identifier) )) ;) })) (expression_statement "local_24 = piVar12;" (assignment_expression "local_24 = piVar12" identifier = identifier) ;) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (if_statement "if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }" if (parenthesized_expression "(local_28 == (int *)sVar13)" ( (binary_expression "local_28 == (int *)sVar13" identifier == (cast_expression "(int *)sVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }" { (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;) (expression_statement "*param_7 = iVar3;" (assignment_expression "*param_7 = iVar3" (pointer_expression "*param_7" * identifier) = identifier) ;) (goto_statement "goto LAB_002b5645;" goto statement_identifier ;) })) (labeled_statement "LAB_002b593e:\n        local_30 = -1;" statement_identifier : (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;)) })) })) })) (labeled_statement "LAB_002b563f:\n  *param_11 = *param_11 | 4;" statement_identifier : (expression_statement "*param_11 = *param_11 | 4;" (assignment_expression "*param_11 = *param_11 | 4" (pointer_expression "*param_11" * identifier) = (binary_expression "*param_11 | 4" (pointer_expression "*param_11" * identifier) | number_literal)) ;)) (labeled_statement "LAB_002b5645:\n  *param_1 = local_24;" statement_identifier : (expression_statement "*param_1 = local_24;" (assignment_expression "*param_1 = local_24" (pointer_expression "*param_1" * identifier) = identifier) ;)) (expression_statement "param_1[1] = local_30;" (assignment_expression "param_1[1] = local_30" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT == LIT) && IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ IDENT ]) * LIT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ IDENT ]) * LIT)) )))) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement ;)) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_002b55a0(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)\n\n{\n  int iVar1;\n  code *pcVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int *piVar6;\n  bool bVar7;\n  byte bVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  bool bVar16;\n  int aiStack_60 [8];\n  int *local_40;\n  int *local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  undefined **local_2c;\n  int *local_28;\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2b55ab;\n  local_2c = &__DT_PLTGOT;\n  local_28 = param_5;\n  local_3c = param_5;\n  local_34 = (int *)param_4;\n  local_30 = param_4;\n  aiStack_60[1] = param_10 + 0x6c;\n  local_38 = param_6;\n  local_24 = param_3;\n  aiStack_60[0] = 0x2b55e1;\n  piVar4 = (int *)FUN_0029d640();\n  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);\n  piVar12 = (int *)((int)&local_40 + iVar3);\n  cVar15 = local_34 == (int *)0xffffffff;\n  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);\n  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;\n  if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }\n  bVar16 = local_38 == -1;\n  local_38 = CONCAT31(local_38._1_3_,bVar16);\n  bVar7 = local_28 != (int *)0x0 && bVar16;\n  if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }\n  if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }\nLAB_002b563f:\n  *param_11 = *param_11 | 4;\nLAB_002b5645:\n  *param_1 = local_24;\n  param_1[1] = local_30;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002b55a0(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)" (identifier "FUN_002b55a0") (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int *param_7" (primitive_type "int") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) (, ",") (parameter_declaration "int param_9" (primitive_type "int") (identifier "param_9")) (, ",") (parameter_declaration "int param_10" (primitive_type "int") (identifier "param_10")) (, ",") (parameter_declaration "uint *param_11" (type_identifier "uint") (pointer_declarator "*param_11" (* "*") (identifier "param_11"))) () ")"))) (compound_statement "{\n  int iVar1;\n  code *pcVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int *piVar6;\n  bool bVar7;\n  byte bVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  bool bVar16;\n  int aiStack_60 [8];\n  int *local_40;\n  int *local_3c;\n  int local_38;\n  int *local_34;\n  int local_30;\n  undefined **local_2c;\n  int *local_28;\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2b55ab;\n  local_2c = &__DT_PLTGOT;\n  local_28 = param_5;\n  local_3c = param_5;\n  local_34 = (int *)param_4;\n  local_30 = param_4;\n  aiStack_60[1] = param_10 + 0x6c;\n  local_38 = param_6;\n  local_24 = param_3;\n  aiStack_60[0] = 0x2b55e1;\n  piVar4 = (int *)FUN_0029d640();\n  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);\n  piVar12 = (int *)((int)&local_40 + iVar3);\n  cVar15 = local_34 == (int *)0xffffffff;\n  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);\n  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;\n  if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }\n  bVar16 = local_38 == -1;\n  local_38 = CONCAT31(local_38._1_3_,bVar16);\n  bVar7 = local_28 != (int *)0x0 && bVar16;\n  if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }\n  if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }\nLAB_002b563f:\n  *param_11 = *param_11 | 4;\nLAB_002b5645:\n  *param_1 = local_24;\n  param_1[1] = local_30;\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "size_t sVar13;" (primitive_type "size_t") (identifier "sVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "char cVar15;" (primitive_type "char") (identifier "cVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "int aiStack_60 [8];" (primitive_type "int") (array_declarator "aiStack_60 [8]" (identifier "aiStack_60") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int *local_40;" (primitive_type "int") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "int *local_3c;" (primitive_type "int") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int *local_34;" (primitive_type "int") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined **local_2c;" (type_identifier "undefined") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c"))) (; ";")) (declaration "int *local_28;" (primitive_type "int") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "int *local_24;" (primitive_type "int") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "int *local_20;" (primitive_type "int") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x2b55ab;" (assignment_expression "uStack_14 = 0x2b55ab" (identifier "uStack_14") (= "=") (number_literal "0x2b55ab")) (; ";")) (expression_statement "local_2c = &__DT_PLTGOT;" (assignment_expression "local_2c = &__DT_PLTGOT" (identifier "local_2c") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_28 = param_5;" (assignment_expression "local_28 = param_5" (identifier "local_28") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" (identifier "local_3c") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_34 = (int *)param_4;" (assignment_expression "local_34 = (int *)param_4" (identifier "local_34") (= "=") (cast_expression "(int *)param_4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (; ";")) (expression_statement "local_30 = param_4;" (assignment_expression "local_30 = param_4" (identifier "local_30") (= "=") (identifier "param_4")) (; ";")) (expression_statement "aiStack_60[1] = param_10 + 0x6c;" (assignment_expression "aiStack_60[1] = param_10 + 0x6c" (subscript_expression "aiStack_60[1]" (identifier "aiStack_60") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_10 + 0x6c" (identifier "param_10") (+ "+") (number_literal "0x6c"))) (; ";")) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" (identifier "local_38") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" (identifier "local_24") (= "=") (identifier "param_3")) (; ";")) (expression_statement "aiStack_60[0] = 0x2b55e1;" (assignment_expression "aiStack_60[0] = 0x2b55e1" (subscript_expression "aiStack_60[0]" (identifier "aiStack_60") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x2b55e1")) (; ";")) (expression_statement "piVar4 = (int *)FUN_0029d640();" (assignment_expression "piVar4 = (int *)FUN_0029d640()" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_0029d640()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0029d640()" (identifier "FUN_0029d640") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);" (assignment_expression "iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0)" (identifier "iVar3") (= "=") (unary_expression "-(param_9 * 4 + 0x1bU & 0xfffffff0)" (- "-") (parenthesized_expression "(param_9 * 4 + 0x1bU & 0xfffffff0)" (( "(") (binary_expression "param_9 * 4 + 0x1bU & 0xfffffff0" (binary_expression "param_9 * 4 + 0x1bU" (binary_expression "param_9 * 4" (identifier "param_9") (* "*") (number_literal "4")) (+ "+") (number_literal "0x1bU")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "piVar12 = (int *)((int)&local_40 + iVar3);" (assignment_expression "piVar12 = (int *)((int)&local_40 + iVar3)" (identifier "piVar12") (= "=") (cast_expression "(int *)((int)&local_40 + iVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&local_40 + iVar3)" (( "(") (binary_expression "(int)&local_40 + iVar3" (cast_expression "(int)&local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (+ "+") (identifier "iVar3")) () ")")))) (; ";")) (expression_statement "cVar15 = local_34 == (int *)0xffffffff;" (assignment_expression "cVar15 = local_34 == (int *)0xffffffff" (identifier "cVar15") (= "=") (binary_expression "local_34 == (int *)0xffffffff" (identifier "local_34") (== "==") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff")))) (; ";")) (expression_statement "local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);" (assignment_expression "local_20 = (int *)CONCAT31(local_20._1_3_,cVar15)" (identifier "local_20") (= "=") (cast_expression "(int *)CONCAT31(local_20._1_3_,cVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_20._1_3_,cVar15)" (identifier "CONCAT31") (argument_list "(local_20._1_3_,cVar15)" (( "(") (field_expression "local_20._1_3_" (identifier "local_20") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "cVar15") () ")"))))) (; ";")) (expression_statement "bVar7 = param_3 != (int *)0x0 && (bool)cVar15;" (assignment_expression "bVar7 = param_3 != (int *)0x0 && (bool)cVar15" (identifier "bVar7") (= "=") (binary_expression "param_3 != (int *)0x0 && (bool)cVar15" (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (cast_expression "(bool)cVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "cVar15")))) (; ";")) (if_statement "if (bVar7) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }" (if "if") (parenthesized_expression "(bVar7)" (( "(") (identifier "bVar7") () ")")) (compound_statement "{\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }\n    cVar15 = (byte)local_24;\n    local_24 = (int *)0x0;\n    if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }\n  }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }\n    else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n      iVar11 = *(int *)param_3[2];\n      local_24._0_1_ = bVar7;\n    }" ({ "{") (expression_statement "iVar11 = *(int *)param_3[2];" (assignment_expression "iVar11 = *(int *)param_3[2]" (identifier "iVar11") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "local_24._0_1_ = bVar7;" (assignment_expression "local_24._0_1_ = bVar7" (field_expression "local_24._0_1_" (identifier "local_24") (. ".") (field_identifier "_0_1_")) (= "=") (identifier "bVar7")) (; ";")) (} "}")) (else_clause "else {\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }" (else "else") (compound_statement "{\n      iVar11 = *param_3;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;\n      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n    }" ({ "{") (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" (identifier "iVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_40 = piVar12;" (assignment_expression "local_40 = piVar12" (identifier "local_40") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = param_3;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = param_3" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);" (assignment_expression "local_24 = (int *)CONCAT31(local_24._1_3_,bVar7)" (identifier "local_24") (= "=") (cast_expression "(int *)CONCAT31(local_24._1_3_,bVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_24._1_3_,bVar7)" (identifier "CONCAT31") (argument_list "(local_24._1_3_,bVar7)" (( "(") (field_expression "local_24._1_3_" (identifier "local_24") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar7") () ")"))))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x24)" (* "*") (cast_expression "(code **)(iVar11 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5a3f")) (; ";")) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" (identifier "iVar11") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar12 = local_40;" (assignment_expression "piVar12 = local_40" (identifier "piVar12") (= "=") (identifier "local_40")) (; ";")) (} "}")))) (expression_statement "cVar15 = (byte)local_24;" (assignment_expression "cVar15 = (byte)local_24" (identifier "cVar15") (= "=") (cast_expression "(byte)local_24" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_24"))) (; ";")) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" (identifier "local_24") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar11 != -1) {\n      cVar15 = '\0';\n      local_24 = param_3;\n    }" (if "if") (parenthesized_expression "(iVar11 != -1)" (( "(") (binary_expression "iVar11 != -1" (identifier "iVar11") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      cVar15 = '\0';\n      local_24 = param_3;\n    }" ({ "{") (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" (identifier "cVar15") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_24 = param_3;" (assignment_expression "local_24 = param_3" (identifier "local_24") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar16 = local_38 == -1;" (assignment_expression "bVar16 = local_38 == -1" (identifier "bVar16") (= "=") (binary_expression "local_38 == -1" (identifier "local_38") (== "==") (number_literal "-1"))) (; ";")) (expression_statement "local_38 = CONCAT31(local_38._1_3_,bVar16);" (assignment_expression "local_38 = CONCAT31(local_38._1_3_,bVar16)" (identifier "local_38") (= "=") (call_expression "CONCAT31(local_38._1_3_,bVar16)" (identifier "CONCAT31") (argument_list "(local_38._1_3_,bVar16)" (( "(") (field_expression "local_38._1_3_" (identifier "local_38") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar16") () ")")))) (; ";")) (expression_statement "bVar7 = local_28 != (int *)0x0 && bVar16;" (assignment_expression "bVar7 = local_28 != (int *)0x0 && bVar16" (identifier "bVar7") (= "=") (binary_expression "local_28 != (int *)0x0 && bVar16" (binary_expression "local_28 != (int *)0x0" (identifier "local_28") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar7) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }" (if "if") (parenthesized_expression "(bVar7)" (( "(") (identifier "bVar7") () ")")) (compound_statement "{\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }\n    local_3c = (int *)0x0;\n    if (iVar11 != -1) {\n      local_3c = local_28;\n    }\n    bVar16 = iVar11 == -1 && bVar7;\n  }" ({ "{") (if_statement "if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar11 = *(int *)local_28[2];\n    }\n    else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }" (if "if") (parenthesized_expression "((int *)local_28[2] < (int *)local_28[3])" (( "(") (binary_expression "(int *)local_28[2] < (int *)local_28[3]" (cast_expression "(int *)local_28[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_28[2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_28[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_28[3]" (identifier "local_28") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n      iVar11 = *(int *)local_28[2];\n    }" ({ "{") (expression_statement "iVar11 = *(int *)local_28[2];" (assignment_expression "iVar11 = *(int *)local_28[2]" (identifier "iVar11") (= "=") (pointer_expression "*(int *)local_28[2]" (* "*") (cast_expression "(int *)local_28[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_28[2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }" (else "else") (compound_statement "{\n      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);\n      iVar11 = *local_28;\n      local_40 = piVar12;\n      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;\n      pcVar2 = *(code **)(iVar11 + 0x24);\n      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;\n      iVar11 = (*pcVar2)();\n      piVar12 = local_40;\n      cVar15 = (char)local_3c;\n    }" ({ "{") (expression_statement "local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);" (assignment_expression "local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15)" (identifier "local_3c") (= "=") (cast_expression "(int *)CONCAT31(local_3c._1_3_,cVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_3c._1_3_,cVar15)" (identifier "CONCAT31") (argument_list "(local_3c._1_3_,cVar15)" (( "(") (field_expression "local_3c._1_3_" (identifier "local_3c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "cVar15") () ")"))))) (; ";")) (expression_statement "iVar11 = *local_28;" (assignment_expression "iVar11 = *local_28" (identifier "iVar11") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";")) (expression_statement "local_40 = piVar12;" (assignment_expression "local_40 = piVar12" (identifier "local_40") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_28;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_28" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x24)" (* "*") (cast_expression "(code **)(iVar11 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5a60")) (; ";")) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" (identifier "iVar11") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar12 = local_40;" (assignment_expression "piVar12 = local_40" (identifier "piVar12") (= "=") (identifier "local_40")) (; ";")) (expression_statement "cVar15 = (char)local_3c;" (assignment_expression "cVar15 = (char)local_3c" (identifier "cVar15") (= "=") (cast_expression "(char)local_3c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_3c"))) (; ";")) (} "}")))) (expression_statement "local_3c = (int *)0x0;" (assignment_expression "local_3c = (int *)0x0" (identifier "local_3c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar11 != -1) {\n      local_3c = local_28;\n    }" (if "if") (parenthesized_expression "(iVar11 != -1)" (( "(") (binary_expression "iVar11 != -1" (identifier "iVar11") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      local_3c = local_28;\n    }" ({ "{") (expression_statement "local_3c = local_28;" (assignment_expression "local_3c = local_28" (identifier "local_3c") (= "=") (identifier "local_28")) (; ";")) (} "}"))) (expression_statement "bVar16 = iVar11 == -1 && bVar7;" (assignment_expression "bVar16 = iVar11 == -1 && bVar7" (identifier "bVar16") (= "=") (binary_expression "iVar11 == -1 && bVar7" (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1")) (&& "&&") (identifier "bVar7"))) (; ";")) (} "}"))) (if_statement "if (bVar16 != (bool)cVar15) {\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar16 != (bool)cVar15)" (( "(") (binary_expression "bVar16 != (bool)cVar15" (identifier "bVar16") (!= "!=") (cast_expression "(bool)cVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "cVar15"))) () ")")) (compound_statement "{\n    piVar6 = local_34;\n    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }\n    if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }\n  }" ({ "{") (expression_statement "piVar6 = local_34;" (assignment_expression "piVar6 = local_34" (identifier "piVar6") (= "=") (identifier "local_34")) (; ";")) (if_statement "if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }" (if "if") (parenthesized_expression "((local_24 != (int *)0x0) && ((byte)local_20 != '\0'))" (( "(") (binary_expression "(local_24 != (int *)0x0) && ((byte)local_20 != '\0')" (parenthesized_expression "(local_24 != (int *)0x0)" (( "(") (binary_expression "local_24 != (int *)0x0" (identifier "local_24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((byte)local_20 != '\0')" (( "(") (binary_expression "(byte)local_20 != '\0'" (cast_expression "(byte)local_20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_20")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      local_20 = piVar12;\n      if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }\n      piVar12 = (int *)0x0;\n      if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }\n      local_24 = piVar12;\n      piVar12 = local_20;\n    }" ({ "{") (expression_statement "local_20 = piVar12;" (assignment_expression "local_20 = piVar12" (identifier "local_20") (= "=") (identifier "piVar12")) (; ";")) (if_statement "if ((int *)local_24[2] < (int *)local_24[3]) {\n        piVar6 = *(int **)local_24[2];\n      }\n      else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }" (if "if") (parenthesized_expression "((int *)local_24[2] < (int *)local_24[3])" (( "(") (binary_expression "(int *)local_24[2] < (int *)local_24[3]" (cast_expression "(int *)local_24[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_24[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_24[3]" (identifier "local_24") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n        piVar6 = *(int **)local_24[2];\n      }" ({ "{") (expression_statement "piVar6 = *(int **)local_24[2];" (assignment_expression "piVar6 = *(int **)local_24[2]" (identifier "piVar6") (= "=") (pointer_expression "*(int **)local_24[2]" (* "*") (cast_expression "(int **)local_24[2]" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }" (else "else") (compound_statement "{\n        iVar11 = *local_24;\n        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n        pcVar2 = *(code **)(iVar11 + 0x24);\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;\n        piVar6 = (int *)(*pcVar2)();\n      }" ({ "{") (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" (identifier "iVar11") (= "=") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x24)" (* "*") (cast_expression "(code **)(iVar11 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5a80")) (; ";")) (expression_statement "piVar6 = (int *)(*pcVar2)();" (assignment_expression "piVar6 = (int *)(*pcVar2)()" (identifier "piVar6") (= "=") (cast_expression "(int *)(*pcVar2)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" (identifier "piVar12") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (piVar6 != (int *)0xffffffff) {\n        piVar12 = local_24;\n      }" (if "if") (parenthesized_expression "(piVar6 != (int *)0xffffffff)" (( "(") (binary_expression "piVar6 != (int *)0xffffffff" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n        piVar12 = local_24;\n      }" ({ "{") (expression_statement "piVar12 = local_24;" (assignment_expression "piVar12 = local_24" (identifier "piVar12") (= "=") (identifier "local_24")) (; ";")) (} "}"))) (expression_statement "local_24 = piVar12;" (assignment_expression "local_24 = piVar12" (identifier "local_24") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" (identifier "piVar12") (= "=") (identifier "local_20")) (; ";")) (} "}"))) (if_statement "if (param_9 != 0) {\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }" (if "if") (parenthesized_expression "(param_9 != 0)" (( "(") (binary_expression "param_9 != 0" (identifier "param_9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_20 = piVar4;\n      iVar11 = 0;\n      uVar14 = 0;\n      local_34 = piVar12;\nLAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);\n      piVar12 = local_34;\n      local_28 = (int *)uVar14;\n      local_34 = (int *)0x0;\n      if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }\n      if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }\n    }" ({ "{") (expression_statement "local_20 = piVar4;" (assignment_expression "local_20 = piVar4" (identifier "local_20") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = piVar12;" (assignment_expression "local_34 = piVar12" (identifier "local_34") (= "=") (identifier "piVar12")) (; ";")) (labeled_statement "LAB_002b56b2:\n      do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);" (statement_identifier "LAB_002b56b2") (: ":") (do_statement "do {\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      } while (param_9 != iVar11);" (do "do") (compound_statement "{\n        piVar12 = local_20;\n        iVar5 = **(int **)(param_8 + iVar11 * 4);\n        if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }\n        local_34[uVar14] = iVar11;\n        uVar14 = uVar14 + 1;\n        iVar11 = iVar11 + 1;\n      }" ({ "{") (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" (identifier "piVar12") (= "=") (identifier "local_20")) (; ";")) (expression_statement "iVar5 = **(int **)(param_8 + iVar11 * 4);" (assignment_expression "iVar5 = **(int **)(param_8 + iVar11 * 4)" (identifier "iVar5") (= "=") (pointer_expression "**(int **)(param_8 + iVar11 * 4)" (* "*") (pointer_expression "*(int **)(param_8 + iVar11 * 4)" (* "*") (cast_expression "(int **)(param_8 + iVar11 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_8 + iVar11 * 4)" (( "(") (binary_expression "param_8 + iVar11 * 4" (identifier "param_8") (+ "+") (binary_expression "iVar11 * 4" (identifier "iVar11") (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if ((int *)iVar5 != piVar6) {\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }" (if "if") (parenthesized_expression "((int *)iVar5 != piVar6)" (( "(") (binary_expression "(int *)iVar5 != piVar6" (cast_expression "(int *)iVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "iVar5")) (!= "!=") (identifier "piVar6")) () ")")) (compound_statement "{\n          iVar1 = *local_20;\n          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n          pcVar2 = *(code **)(iVar1 + 0x18);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;\n          iVar5 = (*pcVar2)();\n          if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }\n        }" ({ "{") (expression_statement "iVar1 = *local_20;" (assignment_expression "iVar1 = *local_20" (identifier "iVar1") (= "=") (pointer_expression "*local_20" (* "*") (identifier "local_20"))) (; ";")) (expression_statement "*(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;" (assignment_expression "*(int *)((int)aiStack_60 + iVar3 + 8) = iVar5" (pointer_expression "*(int *)((int)aiStack_60 + iVar3 + 8)" (* "*") (cast_expression "(int *)((int)aiStack_60 + iVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 8)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 8" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar1 + 0x18);" (assignment_expression "pcVar2 = *(code **)(iVar1 + 0x18)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar1 + 0x18)" (* "*") (cast_expression "(code **)(iVar1 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b56a0")) (; ";")) (expression_statement "iVar5 = (*pcVar2)();" (assignment_expression "iVar5 = (*pcVar2)()" (identifier "iVar5") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((int *)iVar5 != piVar6) {\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }" (if "if") (parenthesized_expression "((int *)iVar5 != piVar6)" (( "(") (binary_expression "(int *)iVar5 != piVar6" (cast_expression "(int *)iVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "iVar5")) (!= "!=") (identifier "piVar6")) () ")")) (compound_statement "{\n            iVar11 = iVar11 + 1;\n            if (param_9 == iVar11) break;\n            goto LAB_002b56b2;\n          }" ({ "{") (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_9 == iVar11) break;" (if "if") (parenthesized_expression "(param_9 == iVar11)" (( "(") (binary_expression "param_9 == iVar11" (identifier "param_9") (== "==") (identifier "iVar11")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_002b56b2;" (goto "goto") (statement_identifier "LAB_002b56b2") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_34[uVar14] = iVar11;" (assignment_expression "local_34[uVar14] = iVar11" (subscript_expression "local_34[uVar14]" (identifier "local_34") ([ "[") (identifier "uVar14") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_9 != iVar11)" (( "(") (binary_expression "param_9 != iVar11" (identifier "param_9") (!= "!=") (identifier "iVar11")) () ")")) (; ";"))) (expression_statement "piVar12 = local_34;" (assignment_expression "piVar12 = local_34" (identifier "piVar12") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_28 = (int *)uVar14;" (assignment_expression "local_28 = (int *)uVar14" (identifier "local_28") (= "=") (cast_expression "(int *)uVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar14"))) (; ";")) (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" (identifier "local_34") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (1 < uVar14) {\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }" (if "if") (parenthesized_expression "(1 < uVar14)" (( "(") (binary_expression "1 < uVar14" (number_literal "1") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n        do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);\n        local_30 = -1;\n      }" ({ "{") (do_statement "do {\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        } while (1 < local_28);" (do "do") (compound_statement "{\n          uVar14 = 1;\n          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;\n          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n          local_20 = piVar12;\n          do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);\n          if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }\n          local_34 = (int *)((int)local_34 + 1);\n          if (piVar4 <= local_34) goto LAB_002b593e;\n          if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }\n          bVar7 = iVar11 == -1;\n          piVar4 = (int *)0x0;\n          if (!bVar7) {\n            piVar4 = local_24;\n          }\n          local_24 = piVar4;\n          bVar10 = local_3c != (int *)0x0 & (byte)local_38;\n          if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }\n          uVar14 = 0;\n          local_30 = (int)local_34 << 2;\n          do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);\nLAB_002b5811:\n        }" ({ "{") (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4)" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_8 + *piVar12 * 4)" (* "*") (cast_expression "(undefined4 *)(param_8 + *piVar12 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + *piVar12 * 4)" (( "(") (binary_expression "param_8 + *piVar12 * 4" (identifier "param_8") (+ "+") (binary_expression "*piVar12 * 4" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5700")) (; ";")) (expression_statement "piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));" (assignment_expression "piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (identifier "piVar4") (= "=") (cast_expression "(int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (identifier "wcslen") (argument_list "(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (( "(") (pointer_expression "*(wchar_t **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(wchar_t **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "wchar_t **" (type_identifier "wchar_t") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (expression_statement "local_20 = piVar12;" (assignment_expression "local_20 = piVar12" (identifier "local_20") (= "=") (identifier "piVar12")) (; ";")) (do_statement "do {\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          } while (uVar14 < local_28);" (do "do") (compound_statement "{\n            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;\n            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n            piVar12 = local_20;\n            if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }\n            uVar14 = uVar14 + 1;\n          }" ({ "{") (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4) =\n                 *(undefined4 *)(param_8 + local_20[uVar14] * 4)" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_8 + local_20[uVar14] * 4)" (* "*") (cast_expression "(undefined4 *)(param_8 + local_20[uVar14] * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + local_20[uVar14] * 4)" (( "(") (binary_expression "param_8 + local_20[uVar14] * 4" (identifier "param_8") (+ "+") (binary_expression "local_20[uVar14] * 4" (subscript_expression "local_20[uVar14]" (identifier "local_20") ([ "[") (identifier "uVar14") (] "]")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5727")) (; ";")) (expression_statement "piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));" (assignment_expression "piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (identifier "piVar6") (= "=") (cast_expression "(int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (identifier "wcslen") (argument_list "(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (( "(") (pointer_expression "*(wchar_t **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(wchar_t **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "wchar_t **" (type_identifier "wchar_t") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" (identifier "piVar12") (= "=") (identifier "local_20")) (; ";")) (if_statement "if (piVar6 < piVar4) {\n              piVar4 = piVar6;\n            }" (if "if") (parenthesized_expression "(piVar6 < piVar4)" (( "(") (binary_expression "piVar6 < piVar4" (identifier "piVar6") (< "<") (identifier "piVar4")) () ")")) (compound_statement "{\n              piVar4 = piVar6;\n            }" ({ "{") (expression_statement "piVar4 = piVar6;" (assignment_expression "piVar4 = piVar6" (identifier "piVar4") (= "=") (identifier "piVar6")) (; ";")) (} "}"))) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar14 < local_28)" (( "(") (binary_expression "uVar14 < local_28" (identifier "uVar14") (< "<") (identifier "local_28")) () ")")) (; ";")) (if_statement "if ((uint)local_24[2] < (uint)local_24[3]) {\n            local_24[2] = local_24[2] + 4;\n          }\n          else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }" (if "if") (parenthesized_expression "((uint)local_24[2] < (uint)local_24[3])" (( "(") (binary_expression "(uint)local_24[2] < (uint)local_24[3]" (cast_expression "(uint)local_24[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(uint)local_24[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_24[3]" (identifier "local_24") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            local_24[2] = local_24[2] + 4;\n          }" ({ "{") (expression_statement "local_24[2] = local_24[2] + 4;" (assignment_expression "local_24[2] = local_24[2] + 4" (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "local_24[2] + 4" (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }" (else "else") (compound_statement "{\n            iVar11 = *local_24;\n            local_20 = piVar4;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;\n            (*pcVar2)();\n            piVar4 = local_20;\n          }" ({ "{") (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" (identifier "iVar11") (= "=") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (; ";")) (expression_statement "local_20 = piVar4;" (assignment_expression "local_20 = piVar4" (identifier "local_20") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x28)" (* "*") (cast_expression "(code **)(iVar11 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x28)" (( "(") (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b597f")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar4 = local_20;" (assignment_expression "piVar4 = local_20" (identifier "piVar4") (= "=") (identifier "local_20")) (; ";")) (} "}")))) (expression_statement "local_34 = (int *)((int)local_34 + 1);" (assignment_expression "local_34 = (int *)((int)local_34 + 1)" (identifier "local_34") (= "=") (cast_expression "(int *)((int)local_34 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_34 + 1)" (( "(") (binary_expression "(int)local_34 + 1" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (piVar4 <= local_34) goto LAB_002b593e;" (if "if") (parenthesized_expression "(piVar4 <= local_34)" (( "(") (binary_expression "piVar4 <= local_34" (identifier "piVar4") (<= "<=") (identifier "local_34")) () ")")) (goto_statement "goto LAB_002b593e;" (goto "goto") (statement_identifier "LAB_002b593e") (; ";"))) (if_statement "if ((int *)local_24[2] < (int *)local_24[3]) {\n            iVar11 = *(int *)local_24[2];\n          }\n          else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }" (if "if") (parenthesized_expression "((int *)local_24[2] < (int *)local_24[3])" (( "(") (binary_expression "(int *)local_24[2] < (int *)local_24[3]" (cast_expression "(int *)local_24[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_24[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_24[3]" (identifier "local_24") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            iVar11 = *(int *)local_24[2];\n          }" ({ "{") (expression_statement "iVar11 = *(int *)local_24[2];" (assignment_expression "iVar11 = *(int *)local_24[2]" (identifier "iVar11") (= "=") (pointer_expression "*(int *)local_24[2]" (* "*") (cast_expression "(int *)local_24[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }" (else "else") (compound_statement "{\n            iVar11 = *local_24;\n            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n            pcVar2 = *(code **)(iVar11 + 0x24);\n            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;\n            iVar11 = (*pcVar2)();\n          }" ({ "{") (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" (identifier "iVar11") (= "=") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x24)" (* "*") (cast_expression "(code **)(iVar11 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5a05")) (; ";")) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" (identifier "iVar11") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "bVar7 = iVar11 == -1;" (assignment_expression "bVar7 = iVar11 == -1" (identifier "bVar7") (= "=") (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1"))) (; ";")) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" (identifier "piVar4") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (!bVar7) {\n            piVar4 = local_24;\n          }" (if "if") (parenthesized_expression "(!bVar7)" (( "(") (unary_expression "!bVar7" (! "!") (identifier "bVar7")) () ")")) (compound_statement "{\n            piVar4 = local_24;\n          }" ({ "{") (expression_statement "piVar4 = local_24;" (assignment_expression "piVar4 = local_24" (identifier "piVar4") (= "=") (identifier "local_24")) (; ";")) (} "}"))) (expression_statement "local_24 = piVar4;" (assignment_expression "local_24 = piVar4" (identifier "local_24") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "bVar10 = local_3c != (int *)0x0 & (byte)local_38;" (assignment_expression "bVar10 = local_3c != (int *)0x0 & (byte)local_38" (identifier "bVar10") (= "=") (binary_expression "local_3c != (int *)0x0 & (byte)local_38" (binary_expression "local_3c != (int *)0x0" (identifier "local_3c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (& "&") (cast_expression "(byte)local_38" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_38")))) (; ";")) (if_statement "if (bVar10 == 0) {\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }\n          else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }" (if "if") (parenthesized_expression "(bVar10 == 0)" (( "(") (binary_expression "bVar10 == 0" (identifier "bVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;\n          }" ({ "{") (if_statement "if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;" (if "if") (parenthesized_expression "(bVar7 == (bool)(byte)local_38)" (( "(") (binary_expression "bVar7 == (bool)(byte)local_38" (identifier "bVar7") (== "==") (cast_expression "(bool)(byte)local_38" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (cast_expression "(byte)local_38" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_38")))) () ")")) (goto_statement "goto LAB_002b593e;" (goto "goto") (statement_identifier "LAB_002b593e") (; ";"))) (} "}")) (else_clause "else {\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }" (else "else") (compound_statement "{\n            if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }\n            piVar4 = (int *)0x0;\n            if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }\n            local_3c = piVar4;\n            if (iVar11 != -1) {\n              bVar10 = 0;\n            }\n            if ((byte)local_20 == bVar10) goto LAB_002b593e;\n          }" ({ "{") (if_statement "if ((int *)local_3c[2] < (int *)local_3c[3]) {\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }\n            else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }" (if "if") (parenthesized_expression "((int *)local_3c[2] < (int *)local_3c[3])" (( "(") (binary_expression "(int *)local_3c[2] < (int *)local_3c[3]" (cast_expression "(int *)local_3c[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_3c[2]" (identifier "local_3c") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_3c[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_3c[3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n              iVar11 = *(int *)local_3c[2];\n              local_20._0_1_ = bVar7;\n            }" ({ "{") (expression_statement "iVar11 = *(int *)local_3c[2];" (assignment_expression "iVar11 = *(int *)local_3c[2]" (identifier "iVar11") (= "=") (pointer_expression "*(int *)local_3c[2]" (* "*") (cast_expression "(int *)local_3c[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_3c[2]" (identifier "local_3c") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "local_20._0_1_ = bVar7;" (assignment_expression "local_20._0_1_ = bVar7" (field_expression "local_20._0_1_" (identifier "local_20") (. ".") (field_identifier "_0_1_")) (= "=") (identifier "bVar7")) (; ";")) (} "}")) (else_clause "else {\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }" (else "else") (compound_statement "{\n              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);\n              iVar11 = *local_3c;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;\n              iVar11 = (*pcVar2)();\n            }" ({ "{") (expression_statement "local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);" (assignment_expression "local_20 = (int *)CONCAT31(local_20._1_3_,bVar7)" (identifier "local_20") (= "=") (cast_expression "(int *)CONCAT31(local_20._1_3_,bVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_20._1_3_,bVar7)" (identifier "CONCAT31") (argument_list "(local_20._1_3_,bVar7)" (( "(") (field_expression "local_20._1_3_" (identifier "local_20") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar7") () ")"))))) (; ";")) (expression_statement "iVar11 = *local_3c;" (assignment_expression "iVar11 = *local_3c" (identifier "iVar11") (= "=") (pointer_expression "*local_3c" (* "*") (identifier "local_3c"))) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x24)" (* "*") (cast_expression "(code **)(iVar11 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b59eb")) (; ";")) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" (identifier "iVar11") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" (identifier "piVar4") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar11 != -1) {\n              piVar4 = local_3c;\n            }" (if "if") (parenthesized_expression "(iVar11 != -1)" (( "(") (binary_expression "iVar11 != -1" (identifier "iVar11") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              piVar4 = local_3c;\n            }" ({ "{") (expression_statement "piVar4 = local_3c;" (assignment_expression "piVar4 = local_3c" (identifier "piVar4") (= "=") (identifier "local_3c")) (; ";")) (} "}"))) (expression_statement "local_3c = piVar4;" (assignment_expression "local_3c = piVar4" (identifier "local_3c") (= "=") (identifier "piVar4")) (; ";")) (if_statement "if (iVar11 != -1) {\n              bVar10 = 0;\n            }" (if "if") (parenthesized_expression "(iVar11 != -1)" (( "(") (binary_expression "iVar11 != -1" (identifier "iVar11") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              bVar10 = 0;\n            }" ({ "{") (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if ((byte)local_20 == bVar10) goto LAB_002b593e;" (if "if") (parenthesized_expression "((byte)local_20 == bVar10)" (( "(") (binary_expression "(byte)local_20 == bVar10" (cast_expression "(byte)local_20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_20")) (== "==") (identifier "bVar10")) () ")")) (goto_statement "goto LAB_002b593e;" (goto "goto") (statement_identifier "LAB_002b593e") (; ";"))) (} "}")))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = (int)local_34 << 2;" (assignment_expression "local_30 = (int)local_34 << 2" (identifier "local_30") (= "=") (binary_expression "(int)local_34 << 2" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (<< "<<") (number_literal "2"))) (; ";")) (do_statement "do {\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          } while (uVar14 < local_28);" (do "do") (compound_statement "{\n            while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }\n            local_28 = (int *)((int)local_28 - 1);\n            piVar12[uVar14] = piVar12[(int)local_28];\n          }" ({ "{") (while_statement "while( true ) {\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              piVar4 = (int *)0xffffffff;\n              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);\n              if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }\n              if (local_20 != piVar4) break;\n              uVar14 = uVar14 + 1;\n              if (local_28 <= uVar14) goto LAB_002b5811;\n            }" ({ "{") (expression_statement "piVar4 = (int *)0xffffffff;" (assignment_expression "piVar4 = (int *)0xffffffff" (identifier "piVar4") (= "=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);" (assignment_expression "local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" (identifier "local_20") (= "=") (pointer_expression "*(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" (* "*") (cast_expression "(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30)" (( "(") (binary_expression "*(int *)(param_8 + piVar12[uVar14] * 4) + local_30" (pointer_expression "*(int *)(param_8 + piVar12[uVar14] * 4)" (* "*") (cast_expression "(int *)(param_8 + piVar12[uVar14] * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + piVar12[uVar14] * 4)" (( "(") (binary_expression "param_8 + piVar12[uVar14] * 4" (identifier "param_8") (+ "+") (binary_expression "piVar12[uVar14] * 4" (subscript_expression "piVar12[uVar14]" (identifier "piVar12") ([ "[") (identifier "uVar14") (] "]")) (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "local_30")) () ")"))))) (; ";")) (if_statement "if (local_24 != (int *)0x0) {\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }" (if "if") (parenthesized_expression "(local_24 != (int *)0x0)" (( "(") (binary_expression "local_24 != (int *)0x0" (identifier "local_24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }\n                piVar6 = (int *)0x0;\n                if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }\n                local_24 = piVar6;\n              }" ({ "{") (if_statement "if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {\n                  piVar4 = *(int **)local_24[2];\n                }\n                else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }" (if "if") (parenthesized_expression "((undefined4 *)local_24[2] < (undefined4 *)local_24[3])" (( "(") (binary_expression "(undefined4 *)local_24[2] < (undefined4 *)local_24[3]" (cast_expression "(undefined4 *)local_24[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(undefined4 *)local_24[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_24[3]" (identifier "local_24") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                  piVar4 = *(int **)local_24[2];\n                }" ({ "{") (expression_statement "piVar4 = *(int **)local_24[2];" (assignment_expression "piVar4 = *(int **)local_24[2]" (identifier "piVar4") (= "=") (pointer_expression "*(int **)local_24[2]" (* "*") (cast_expression "(int **)local_24[2]" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }" (else "else") (compound_statement "{\n                  iVar11 = *local_24;\n                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n                  pcVar2 = *(code **)(iVar11 + 0x24);\n                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;\n                  piVar4 = (int *)(*pcVar2)();\n                }" ({ "{") (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" (identifier "iVar11") (= "=") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x24)" (* "*") (cast_expression "(code **)(iVar11 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b595f")) (; ";")) (expression_statement "piVar4 = (int *)(*pcVar2)();" (assignment_expression "piVar4 = (int *)(*pcVar2)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*pcVar2)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" (identifier "piVar6") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (piVar4 != (int *)0xffffffff) {\n                  piVar6 = local_24;\n                }" (if "if") (parenthesized_expression "(piVar4 != (int *)0xffffffff)" (( "(") (binary_expression "piVar4 != (int *)0xffffffff" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                  piVar6 = local_24;\n                }" ({ "{") (expression_statement "piVar6 = local_24;" (assignment_expression "piVar6 = local_24" (identifier "piVar6") (= "=") (identifier "local_24")) (; ";")) (} "}"))) (expression_statement "local_24 = piVar6;" (assignment_expression "local_24 = piVar6" (identifier "local_24") (= "=") (identifier "piVar6")) (; ";")) (} "}"))) (if_statement "if (local_20 != piVar4) break;" (if "if") (parenthesized_expression "(local_20 != piVar4)" (( "(") (binary_expression "local_20 != piVar4" (identifier "local_20") (!= "!=") (identifier "piVar4")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_28 <= uVar14) goto LAB_002b5811;" (if "if") (parenthesized_expression "(local_28 <= uVar14)" (( "(") (binary_expression "local_28 <= uVar14" (identifier "local_28") (<= "<=") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_002b5811;" (goto "goto") (statement_identifier "LAB_002b5811") (; ";"))) (} "}"))) (expression_statement "local_28 = (int *)((int)local_28 - 1);" (assignment_expression "local_28 = (int *)((int)local_28 - 1)" (identifier "local_28") (= "=") (cast_expression "(int *)((int)local_28 - 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_28 - 1)" (( "(") (binary_expression "(int)local_28 - 1" (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar12[uVar14] = piVar12[(int)local_28];" (assignment_expression "piVar12[uVar14] = piVar12[(int)local_28]" (subscript_expression "piVar12[uVar14]" (identifier "piVar12") ([ "[") (identifier "uVar14") (] "]")) (= "=") (subscript_expression "piVar12[(int)local_28]" (identifier "piVar12") ([ "[") (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")) (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar14 < local_28)" (( "(") (binary_expression "uVar14 < local_28" (identifier "uVar14") (< "<") (identifier "local_28")) () ")")) (; ";")) (labeled_statement "LAB_002b5811:" (statement_identifier "LAB_002b5811") (: ":") (expression_statement "" (; ""))) (} "}")) (while "while") (parenthesized_expression "(1 < local_28)" (( "(") (binary_expression "1 < local_28" (number_literal "1") (< "<") (identifier "local_28")) () ")")) (; ";")) (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" (identifier "local_30") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (if_statement "if (local_28 == (int *)0x1) {\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }" (if "if") (parenthesized_expression "(local_28 == (int *)0x1)" (( "(") (binary_expression "local_28 == (int *)0x1" (identifier "local_28") (== "==") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }\n        iVar11 = *(int *)(param_8 + *piVar12 * 4);\n        local_30 = *piVar12;\n        sVar13 = (int)local_34 + 1;\n        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;\n        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;\n        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));\n        piVar12 = local_24;\n        local_20 = (int *)iVar11;\n        if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }\n        local_24 = piVar12;\n        iVar3 = local_30;\n        if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }\nLAB_002b593e:\n        local_30 = -1;\n      }" ({ "{") (if_statement "if ((uint)local_24[2] < (uint)local_24[3]) {\n          local_24[2] = local_24[2] + 4;\n        }\n        else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }" (if "if") (parenthesized_expression "((uint)local_24[2] < (uint)local_24[3])" (( "(") (binary_expression "(uint)local_24[2] < (uint)local_24[3]" (cast_expression "(uint)local_24[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(uint)local_24[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_24[3]" (identifier "local_24") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n          local_24[2] = local_24[2] + 4;\n        }" ({ "{") (expression_statement "local_24[2] = local_24[2] + 4;" (assignment_expression "local_24[2] = local_24[2] + 4" (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "local_24[2] + 4" (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }" (else "else") (compound_statement "{\n          iVar11 = *local_24;\n          local_20 = piVar12;\n          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;\n          pcVar2 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;\n          (*pcVar2)();\n          piVar12 = local_20;\n        }" ({ "{") (expression_statement "iVar11 = *local_24;" (assignment_expression "iVar11 = *local_24" (identifier "iVar11") (= "=") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (; ";")) (expression_statement "local_20 = piVar12;" (assignment_expression "local_20 = piVar12" (identifier "local_20") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_24" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x28)" (* "*") (cast_expression "(code **)(iVar11 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x28)" (( "(") (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5b53")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar12 = local_20;" (assignment_expression "piVar12 = local_20" (identifier "piVar12") (= "=") (identifier "local_20")) (; ";")) (} "}")))) (expression_statement "iVar11 = *(int *)(param_8 + *piVar12 * 4);" (assignment_expression "iVar11 = *(int *)(param_8 + *piVar12 * 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(param_8 + *piVar12 * 4)" (* "*") (cast_expression "(int *)(param_8 + *piVar12 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + *piVar12 * 4)" (( "(") (binary_expression "param_8 + *piVar12 * 4" (identifier "param_8") (+ "+") (binary_expression "*piVar12 * 4" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "local_30 = *piVar12;" (assignment_expression "local_30 = *piVar12" (identifier "local_30") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "sVar13 = (int)local_34 + 1;" (assignment_expression "sVar13 = (int)local_34 + 1" (identifier "sVar13") (= "=") (binary_expression "(int)local_34 + 1" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;" (assignment_expression "*(int *)((int)aiStack_60 + iVar3 + 4) = iVar11" (pointer_expression "*(int *)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int *)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5862")) (; ";")) (expression_statement "local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));" (assignment_expression "local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (identifier "local_28") (= "=") (cast_expression "(int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (identifier "wcslen") (argument_list "(*(wchar_t **)((int)aiStack_60 + iVar3 + 4))" (( "(") (pointer_expression "*(wchar_t **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(wchar_t **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "wchar_t **" (type_identifier "wchar_t") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (expression_statement "piVar12 = local_24;" (assignment_expression "piVar12 = local_24" (identifier "piVar12") (= "=") (identifier "local_24")) (; ";")) (expression_statement "local_20 = (int *)iVar11;" (assignment_expression "local_20 = (int *)iVar11" (identifier "local_20") (= "=") (cast_expression "(int *)iVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "iVar11"))) (; ";")) (if_statement "if (sVar13 < local_28) {\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }" (if "if") (parenthesized_expression "(sVar13 < local_28)" (( "(") (binary_expression "sVar13 < local_28" (identifier "sVar13") (< "<") (identifier "local_28")) () ")")) (compound_statement "{\n          do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);\n        }" ({ "{") (do_statement "do {\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          } while (sVar13 < local_28);" (do "do") (compound_statement "{\n            if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }\n            bVar10 = iVar11 == -1;\n            if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }\n            bVar8 = local_3c != (int *)0x0 & (byte)local_38;\n            bVar9 = (byte)local_38;\n            if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }\n            if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }\n            piVar6 = (int *)0xffffffff;\n            piVar4 = *(int **)((int)local_20 + sVar13 * 4);\n            if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }\n            if (piVar4 != piVar6) goto LAB_002b5aca;\n            if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }\n            sVar13 = sVar13 + 1;\n          }" ({ "{") (if_statement "if ((int *)piVar12[2] < (int *)piVar12[3]) {\n              iVar11 = *(int *)piVar12[2];\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }" (if "if") (parenthesized_expression "((int *)piVar12[2] < (int *)piVar12[3])" (( "(") (binary_expression "(int *)piVar12[2] < (int *)piVar12[3]" (cast_expression "(int *)piVar12[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)piVar12[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[3]" (identifier "piVar12") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n              iVar11 = *(int *)piVar12[2];\n            }" ({ "{") (expression_statement "iVar11 = *(int *)piVar12[2];" (assignment_expression "iVar11 = *(int *)piVar12[2]" (identifier "iVar11") (= "=") (pointer_expression "*(int *)piVar12[2]" (* "*") (cast_expression "(int *)piVar12[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }" (else "else") (compound_statement "{\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;\n              iVar11 = (*pcVar2)();\n            }" ({ "{") (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" (identifier "iVar11") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x24)" (* "*") (cast_expression "(code **)(iVar11 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5b23")) (; ";")) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" (identifier "iVar11") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "bVar10 = iVar11 == -1;" (assignment_expression "bVar10 = iVar11 == -1" (identifier "bVar10") (= "=") (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1"))) (; ";")) (if_statement "if ((bool)bVar10) {\n              piVar12 = (int *)0x0;\n            }" (if "if") (parenthesized_expression "((bool)bVar10)" (( "(") (cast_expression "(bool)bVar10" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "bVar10")) () ")")) (compound_statement "{\n              piVar12 = (int *)0x0;\n            }" ({ "{") (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" (identifier "piVar12") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "bVar8 = local_3c != (int *)0x0 & (byte)local_38;" (assignment_expression "bVar8 = local_3c != (int *)0x0 & (byte)local_38" (identifier "bVar8") (= "=") (binary_expression "local_3c != (int *)0x0 & (byte)local_38" (binary_expression "local_3c != (int *)0x0" (identifier "local_3c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (& "&") (cast_expression "(byte)local_38" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_38")))) (; ";")) (expression_statement "bVar9 = (byte)local_38;" (assignment_expression "bVar9 = (byte)local_38" (identifier "bVar9") (= "=") (cast_expression "(byte)local_38" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_38"))) (; ";")) (if_statement "if (bVar8 != 0) {\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }" (if "if") (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }\n              piVar4 = (int *)0x0;\n              if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }\n              bVar9 = bVar8;\n              local_3c = piVar4;\n              if (iVar11 != -1) {\n                bVar9 = 0;\n              }\n            }" ({ "{") (if_statement "if ((int *)local_3c[2] < (int *)local_3c[3]) {\n                iVar11 = *(int *)local_3c[2];\n              }\n              else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }" (if "if") (parenthesized_expression "((int *)local_3c[2] < (int *)local_3c[3])" (( "(") (binary_expression "(int *)local_3c[2] < (int *)local_3c[3]" (cast_expression "(int *)local_3c[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_3c[2]" (identifier "local_3c") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_3c[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_3c[3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                iVar11 = *(int *)local_3c[2];\n              }" ({ "{") (expression_statement "iVar11 = *(int *)local_3c[2];" (assignment_expression "iVar11 = *(int *)local_3c[2]" (identifier "iVar11") (= "=") (pointer_expression "*(int *)local_3c[2]" (* "*") (cast_expression "(int *)local_3c[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_3c[2]" (identifier "local_3c") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }" (else "else") (compound_statement "{\n                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);\n                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);\n                iVar11 = *local_3c;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;\n                iVar11 = (*pcVar2)();\n                bVar10 = (byte)local_2c;\n                bVar8 = (byte)local_24;\n              }" ({ "{") (expression_statement "local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);" (assignment_expression "local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10)" (identifier "local_2c") (= "=") (cast_expression "(undefined **)CONCAT31(local_2c._1_3_,bVar10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_2c._1_3_,bVar10)" (identifier "CONCAT31") (argument_list "(local_2c._1_3_,bVar10)" (( "(") (field_expression "local_2c._1_3_" (identifier "local_2c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar10") () ")"))))) (; ";")) (expression_statement "local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);" (assignment_expression "local_24 = (int *)CONCAT31(local_24._1_3_,bVar8)" (identifier "local_24") (= "=") (cast_expression "(int *)CONCAT31(local_24._1_3_,bVar8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_24._1_3_,bVar8)" (identifier "CONCAT31") (argument_list "(local_24._1_3_,bVar8)" (( "(") (field_expression "local_24._1_3_" (identifier "local_24") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar8") () ")"))))) (; ";")) (expression_statement "iVar11 = *local_3c;" (assignment_expression "iVar11 = *local_3c" (identifier "iVar11") (= "=") (pointer_expression "*local_3c" (* "*") (identifier "local_3c"))) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = local_3c" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x24)" (* "*") (cast_expression "(code **)(iVar11 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5b0d")) (; ";")) (expression_statement "iVar11 = (*pcVar2)();" (assignment_expression "iVar11 = (*pcVar2)()" (identifier "iVar11") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar10 = (byte)local_2c;" (assignment_expression "bVar10 = (byte)local_2c" (identifier "bVar10") (= "=") (cast_expression "(byte)local_2c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_2c"))) (; ";")) (expression_statement "bVar8 = (byte)local_24;" (assignment_expression "bVar8 = (byte)local_24" (identifier "bVar8") (= "=") (cast_expression "(byte)local_24" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_24"))) (; ";")) (} "}")))) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" (identifier "piVar4") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar11 != -1) {\n                piVar4 = local_3c;\n              }" (if "if") (parenthesized_expression "(iVar11 != -1)" (( "(") (binary_expression "iVar11 != -1" (identifier "iVar11") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                piVar4 = local_3c;\n              }" ({ "{") (expression_statement "piVar4 = local_3c;" (assignment_expression "piVar4 = local_3c" (identifier "piVar4") (= "=") (identifier "local_3c")) (; ";")) (} "}"))) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" (identifier "bVar9") (= "=") (identifier "bVar8")) (; ";")) (expression_statement "local_3c = piVar4;" (assignment_expression "local_3c = piVar4" (identifier "local_3c") (= "=") (identifier "piVar4")) (; ";")) (if_statement "if (iVar11 != -1) {\n                bVar9 = 0;\n              }" (if "if") (parenthesized_expression "(iVar11 != -1)" (( "(") (binary_expression "iVar11 != -1" (identifier "iVar11") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                bVar9 = 0;\n              }" ({ "{") (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" (identifier "bVar9") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (bVar9 == bVar10) {\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }" (if "if") (parenthesized_expression "(bVar9 == bVar10)" (( "(") (binary_expression "bVar9 == bVar10" (identifier "bVar9") (== "==") (identifier "bVar10")) () ")")) (compound_statement "{\nLAB_002b5aca:\n              local_30 = -1;\n              local_24 = piVar12;\n              goto LAB_002b563f;\n            }" ({ "{") (labeled_statement "LAB_002b5aca:\n              local_30 = -1;" (statement_identifier "LAB_002b5aca") (: ":") (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" (identifier "local_30") (= "=") (number_literal "-1")) (; ";"))) (expression_statement "local_24 = piVar12;" (assignment_expression "local_24 = piVar12" (identifier "local_24") (= "=") (identifier "piVar12")) (; ";")) (goto_statement "goto LAB_002b563f;" (goto "goto") (statement_identifier "LAB_002b563f") (; ";")) (} "}"))) (expression_statement "piVar6 = (int *)0xffffffff;" (assignment_expression "piVar6 = (int *)0xffffffff" (identifier "piVar6") (= "=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "piVar4 = *(int **)((int)local_20 + sVar13 * 4);" (assignment_expression "piVar4 = *(int **)((int)local_20 + sVar13 * 4)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)((int)local_20 + sVar13 * 4)" (* "*") (cast_expression "(int **)((int)local_20 + sVar13 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_20 + sVar13 * 4)" (( "(") (binary_expression "(int)local_20 + sVar13 * 4" (cast_expression "(int)local_20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_20")) (+ "+") (binary_expression "sVar13 * 4" (identifier "sVar13") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar12 != (int *)0x0) {\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }" (if "if") (parenthesized_expression "(piVar12 != (int *)0x0)" (( "(") (binary_expression "piVar12 != (int *)0x0" (identifier "piVar12") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }\n              if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }\n            }" ({ "{") (if_statement "if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {\n                piVar6 = *(int **)piVar12[2];\n              }\n              else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }" (if "if") (parenthesized_expression "((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3])" (( "(") (binary_expression "(undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]" (cast_expression "(undefined4 *)piVar12[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(undefined4 *)piVar12[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[3]" (identifier "piVar12") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                piVar6 = *(int **)piVar12[2];\n              }" ({ "{") (expression_statement "piVar6 = *(int **)piVar12[2];" (assignment_expression "piVar6 = *(int **)piVar12[2]" (identifier "piVar6") (= "=") (pointer_expression "*(int **)piVar12[2]" (* "*") (cast_expression "(int **)piVar12[2]" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }" (else "else") (compound_statement "{\n                iVar11 = *piVar12;\n                local_24 = piVar4;\n                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n                pcVar2 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;\n                piVar6 = (int *)(*pcVar2)();\n                piVar4 = local_24;\n              }" ({ "{") (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" (identifier "iVar11") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "local_24 = piVar4;" (assignment_expression "local_24 = piVar4" (identifier "local_24") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x24)" (* "*") (cast_expression "(code **)(iVar11 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5b37")) (; ";")) (expression_statement "piVar6 = (int *)(*pcVar2)();" (assignment_expression "piVar6 = (int *)(*pcVar2)()" (identifier "piVar6") (= "=") (cast_expression "(int *)(*pcVar2)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar4 = local_24;" (assignment_expression "piVar4 = local_24" (identifier "piVar4") (= "=") (identifier "local_24")) (; ";")) (} "}")))) (if_statement "if (piVar6 == (int *)0xffffffff) {\n                piVar12 = (int *)0x0;\n              }" (if "if") (parenthesized_expression "(piVar6 == (int *)0xffffffff)" (( "(") (binary_expression "piVar6 == (int *)0xffffffff" (identifier "piVar6") (== "==") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                piVar12 = (int *)0x0;\n              }" ({ "{") (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" (identifier "piVar12") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (piVar4 != piVar6) goto LAB_002b5aca;" (if "if") (parenthesized_expression "(piVar4 != piVar6)" (( "(") (binary_expression "piVar4 != piVar6" (identifier "piVar4") (!= "!=") (identifier "piVar6")) () ")")) (goto_statement "goto LAB_002b5aca;" (goto "goto") (statement_identifier "LAB_002b5aca") (; ";"))) (if_statement "if ((uint)piVar12[2] < (uint)piVar12[3]) {\n              piVar12[2] = piVar12[2] + 4;\n            }\n            else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }" (if "if") (parenthesized_expression "((uint)piVar12[2] < (uint)piVar12[3])" (( "(") (binary_expression "(uint)piVar12[2] < (uint)piVar12[3]" (cast_expression "(uint)piVar12[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(uint)piVar12[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar12[3]" (identifier "piVar12") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n              piVar12[2] = piVar12[2] + 4;\n            }" ({ "{") (expression_statement "piVar12[2] = piVar12[2] + 4;" (assignment_expression "piVar12[2] = piVar12[2] + 4" (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "piVar12[2] + 4" (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }" (else "else") (compound_statement "{\n              iVar11 = *piVar12;\n              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;\n              pcVar2 = *(code **)(iVar11 + 0x28);\n              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;\n              (*pcVar2)();\n            }" ({ "{") (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" (identifier "iVar11") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;" (assignment_expression "*(int **)((int)aiStack_60 + iVar3 + 4) = piVar12" (pointer_expression "*(int **)((int)aiStack_60 + iVar3 + 4)" (* "*") (cast_expression "(int **)((int)aiStack_60 + iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3 + 4)" (( "(") (binary_expression "(int)aiStack_60 + iVar3 + 4" (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar11 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar11 + 0x28)" (* "*") (cast_expression "(code **)(iVar11 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x28)" (( "(") (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;" (assignment_expression "*(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2" (pointer_expression "*(undefined4 *)((int)aiStack_60 + iVar3)" (* "*") (cast_expression "(undefined4 *)((int)aiStack_60 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_60 + iVar3)" (( "(") (binary_expression "(int)aiStack_60 + iVar3" (cast_expression "(int)aiStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_60")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (number_literal "0x2b5ac2")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "sVar13 = sVar13 + 1;" (assignment_expression "sVar13 = sVar13 + 1" (identifier "sVar13") (= "=") (binary_expression "sVar13 + 1" (identifier "sVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(sVar13 < local_28)" (( "(") (binary_expression "sVar13 < local_28" (identifier "sVar13") (< "<") (identifier "local_28")) () ")")) (; ";")) (} "}"))) (expression_statement "local_24 = piVar12;" (assignment_expression "local_24 = piVar12" (identifier "local_24") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" (identifier "iVar3") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_28 == (int *)sVar13) {\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }" (if "if") (parenthesized_expression "(local_28 == (int *)sVar13)" (( "(") (binary_expression "local_28 == (int *)sVar13" (identifier "local_28") (== "==") (cast_expression "(int *)sVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "sVar13"))) () ")")) (compound_statement "{\n          local_30 = -1;\n          *param_7 = iVar3;\n          goto LAB_002b5645;\n        }" ({ "{") (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" (identifier "local_30") (= "=") (number_literal "-1")) (; ";")) (expression_statement "*param_7 = iVar3;" (assignment_expression "*param_7 = iVar3" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "iVar3")) (; ";")) (goto_statement "goto LAB_002b5645;" (goto "goto") (statement_identifier "LAB_002b5645") (; ";")) (} "}"))) (labeled_statement "LAB_002b593e:\n        local_30 = -1;" (statement_identifier "LAB_002b593e") (: ":") (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" (identifier "local_30") (= "=") (number_literal "-1")) (; ";"))) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_002b563f:\n  *param_11 = *param_11 | 4;" (statement_identifier "LAB_002b563f") (: ":") (expression_statement "*param_11 = *param_11 | 4;" (assignment_expression "*param_11 = *param_11 | 4" (pointer_expression "*param_11" (* "*") (identifier "param_11")) (= "=") (binary_expression "*param_11 | 4" (pointer_expression "*param_11" (* "*") (identifier "param_11")) (| "|") (number_literal "4"))) (; ";"))) (labeled_statement "LAB_002b5645:\n  *param_1 = local_24;" (statement_identifier "LAB_002b5645") (: ":") (expression_statement "*param_1 = local_24;" (assignment_expression "*param_1 = local_24" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_24")) (; ";"))) (expression_statement "param_1[1] = local_30;" (assignment_expression "param_1[1] = local_30" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_30")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::_M_extract_name(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, int&, wchar_t const**, unsigned
   int, std::ios_base&, std::_Ios_Iostate&) const */

void std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::
     _M_extract_name(void)

{
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,
                 int param_6,int *param_7,int param_8,int param_9,int param_10,uint *param_11)

{
  int iVar1;
  code *pcVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  int *piVar6;
  bool bVar7;
  byte bVar8;
  byte bVar9;
  byte bVar10;
  int iVar11;
  int *piVar12;
  size_t sVar13;
  uint uVar14;
  char cVar15;
  bool bVar16;
  int aiStack_60 [8];
  int *local_40;
  int *local_3c;
  int local_38;
  int *local_34;
  int local_30;
  undefined **local_2c;
  int *local_28;
  int *local_24;
  int *local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x2b55ab;
  local_2c = &__DT_PLTGOT;
  local_28 = param_5;
  local_3c = param_5;
  local_34 = (int *)param_4;
  local_30 = param_4;
  aiStack_60[1] = param_10 + 0x6c;
  local_38 = param_6;
  local_24 = param_3;
  aiStack_60[0] = 0x2b55e1;
  piVar4 = (int *)FUN_0029d640();
  iVar3 = -(param_9 * 4 + 0x1bU & 0xfffffff0);
  piVar12 = (int *)((int)&local_40 + iVar3);
  cVar15 = local_34 == (int *)0xffffffff;
  local_20 = (int *)CONCAT31(local_20._1_3_,cVar15);
  bVar7 = param_3 != (int *)0x0 && (bool)cVar15;
  if (bVar7) {
    if ((int *)param_3[2] < (int *)param_3[3]) {
      iVar11 = *(int *)param_3[2];
      local_24._0_1_ = bVar7;
    }
    else {
      iVar11 = *param_3;
      local_40 = piVar12;
      *(int **)((int)aiStack_60 + iVar3 + 4) = param_3;
      local_24 = (int *)CONCAT31(local_24._1_3_,bVar7);
      pcVar2 = *(code **)(iVar11 + 0x24);
      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a3f;
      iVar11 = (*pcVar2)();
      piVar12 = local_40;
    }
    cVar15 = (byte)local_24;
    local_24 = (int *)0x0;
    if (iVar11 != -1) {
      cVar15 = '\0';
      local_24 = param_3;
    }
  }
  bVar16 = local_38 == -1;
  local_38 = CONCAT31(local_38._1_3_,bVar16);
  bVar7 = local_28 != (int *)0x0 && bVar16;
  if (bVar7) {
    if ((int *)local_28[2] < (int *)local_28[3]) {
      iVar11 = *(int *)local_28[2];
    }
    else {
      local_3c = (int *)CONCAT31(local_3c._1_3_,cVar15);
      iVar11 = *local_28;
      local_40 = piVar12;
      *(int **)((int)aiStack_60 + iVar3 + 4) = local_28;
      pcVar2 = *(code **)(iVar11 + 0x24);
      *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a60;
      iVar11 = (*pcVar2)();
      piVar12 = local_40;
      cVar15 = (char)local_3c;
    }
    local_3c = (int *)0x0;
    if (iVar11 != -1) {
      local_3c = local_28;
    }
    bVar16 = iVar11 == -1 && bVar7;
  }
  if (bVar16 != (bool)cVar15) {
    piVar6 = local_34;
    if ((local_24 != (int *)0x0) && ((byte)local_20 != '\0')) {
      local_20 = piVar12;
      if ((int *)local_24[2] < (int *)local_24[3]) {
        piVar6 = *(int **)local_24[2];
      }
      else {
        iVar11 = *local_24;
        *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
        pcVar2 = *(code **)(iVar11 + 0x24);
        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a80;
        piVar6 = (int *)(*pcVar2)();
      }
      piVar12 = (int *)0x0;
      if (piVar6 != (int *)0xffffffff) {
        piVar12 = local_24;
      }
      local_24 = piVar12;
      piVar12 = local_20;
    }
    if (param_9 != 0) {
      local_20 = piVar4;
      iVar11 = 0;
      uVar14 = 0;
      local_34 = piVar12;
LAB_002b56b2:
      do {
        piVar12 = local_20;
        iVar5 = **(int **)(param_8 + iVar11 * 4);
        if ((int *)iVar5 != piVar6) {
          iVar1 = *local_20;
          *(int *)((int)aiStack_60 + iVar3 + 8) = iVar5;
          *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;
          pcVar2 = *(code **)(iVar1 + 0x18);
          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b56a0;
          iVar5 = (*pcVar2)();
          if ((int *)iVar5 != piVar6) {
            iVar11 = iVar11 + 1;
            if (param_9 == iVar11) break;
            goto LAB_002b56b2;
          }
        }
        local_34[uVar14] = iVar11;
        uVar14 = uVar14 + 1;
        iVar11 = iVar11 + 1;
      } while (param_9 != iVar11);
      piVar12 = local_34;
      local_28 = (int *)uVar14;
      local_34 = (int *)0x0;
      if (1 < uVar14) {
        do {
          uVar14 = 1;
          *(undefined4 *)((int)aiStack_60 + iVar3 + 4) = *(undefined4 *)(param_8 + *piVar12 * 4);
          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5700;
          piVar4 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));
          local_20 = piVar12;
          do {
            *(undefined4 *)((int)aiStack_60 + iVar3 + 4) =
                 *(undefined4 *)(param_8 + local_20[uVar14] * 4);
            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5727;
            piVar6 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));
            piVar12 = local_20;
            if (piVar6 < piVar4) {
              piVar4 = piVar6;
            }
            uVar14 = uVar14 + 1;
          } while (uVar14 < local_28);
          if ((uint)local_24[2] < (uint)local_24[3]) {
            local_24[2] = local_24[2] + 4;
          }
          else {
            iVar11 = *local_24;
            local_20 = piVar4;
            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
            pcVar2 = *(code **)(iVar11 + 0x28);
            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b597f;
            (*pcVar2)();
            piVar4 = local_20;
          }
          local_34 = (int *)((int)local_34 + 1);
          if (piVar4 <= local_34) goto LAB_002b593e;
          if ((int *)local_24[2] < (int *)local_24[3]) {
            iVar11 = *(int *)local_24[2];
          }
          else {
            iVar11 = *local_24;
            *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
            pcVar2 = *(code **)(iVar11 + 0x24);
            *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5a05;
            iVar11 = (*pcVar2)();
          }
          bVar7 = iVar11 == -1;
          piVar4 = (int *)0x0;
          if (!bVar7) {
            piVar4 = local_24;
          }
          local_24 = piVar4;
          bVar10 = local_3c != (int *)0x0 & (byte)local_38;
          if (bVar10 == 0) {
            if (bVar7 == (bool)(byte)local_38) goto LAB_002b593e;
          }
          else {
            if ((int *)local_3c[2] < (int *)local_3c[3]) {
              iVar11 = *(int *)local_3c[2];
              local_20._0_1_ = bVar7;
            }
            else {
              local_20 = (int *)CONCAT31(local_20._1_3_,bVar7);
              iVar11 = *local_3c;
              *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;
              pcVar2 = *(code **)(iVar11 + 0x24);
              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b59eb;
              iVar11 = (*pcVar2)();
            }
            piVar4 = (int *)0x0;
            if (iVar11 != -1) {
              piVar4 = local_3c;
            }
            local_3c = piVar4;
            if (iVar11 != -1) {
              bVar10 = 0;
            }
            if ((byte)local_20 == bVar10) goto LAB_002b593e;
          }
          uVar14 = 0;
          local_30 = (int)local_34 << 2;
          do {
            while( true ) {
              piVar4 = (int *)0xffffffff;
              local_20 = *(int **)(*(int *)(param_8 + piVar12[uVar14] * 4) + local_30);
              if (local_24 != (int *)0x0) {
                if ((undefined4 *)local_24[2] < (undefined4 *)local_24[3]) {
                  piVar4 = *(int **)local_24[2];
                }
                else {
                  iVar11 = *local_24;
                  *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
                  pcVar2 = *(code **)(iVar11 + 0x24);
                  *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b595f;
                  piVar4 = (int *)(*pcVar2)();
                }
                piVar6 = (int *)0x0;
                if (piVar4 != (int *)0xffffffff) {
                  piVar6 = local_24;
                }
                local_24 = piVar6;
              }
              if (local_20 != piVar4) break;
              uVar14 = uVar14 + 1;
              if (local_28 <= uVar14) goto LAB_002b5811;
            }
            local_28 = (int *)((int)local_28 - 1);
            piVar12[uVar14] = piVar12[(int)local_28];
          } while (uVar14 < local_28);
LAB_002b5811:
        } while (1 < local_28);
        local_30 = -1;
      }
      if (local_28 == (int *)0x1) {
        if ((uint)local_24[2] < (uint)local_24[3]) {
          local_24[2] = local_24[2] + 4;
        }
        else {
          iVar11 = *local_24;
          local_20 = piVar12;
          *(int **)((int)aiStack_60 + iVar3 + 4) = local_24;
          pcVar2 = *(code **)(iVar11 + 0x28);
          *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b53;
          (*pcVar2)();
          piVar12 = local_20;
        }
        iVar11 = *(int *)(param_8 + *piVar12 * 4);
        local_30 = *piVar12;
        sVar13 = (int)local_34 + 1;
        *(int *)((int)aiStack_60 + iVar3 + 4) = iVar11;
        *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5862;
        local_28 = (int *)wcslen(*(wchar_t **)((int)aiStack_60 + iVar3 + 4));
        piVar12 = local_24;
        local_20 = (int *)iVar11;
        if (sVar13 < local_28) {
          do {
            if ((int *)piVar12[2] < (int *)piVar12[3]) {
              iVar11 = *(int *)piVar12[2];
            }
            else {
              iVar11 = *piVar12;
              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;
              pcVar2 = *(code **)(iVar11 + 0x24);
              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b23;
              iVar11 = (*pcVar2)();
            }
            bVar10 = iVar11 == -1;
            if ((bool)bVar10) {
              piVar12 = (int *)0x0;
            }
            bVar8 = local_3c != (int *)0x0 & (byte)local_38;
            bVar9 = (byte)local_38;
            if (bVar8 != 0) {
              if ((int *)local_3c[2] < (int *)local_3c[3]) {
                iVar11 = *(int *)local_3c[2];
              }
              else {
                local_2c = (undefined **)CONCAT31(local_2c._1_3_,bVar10);
                local_24 = (int *)CONCAT31(local_24._1_3_,bVar8);
                iVar11 = *local_3c;
                *(int **)((int)aiStack_60 + iVar3 + 4) = local_3c;
                pcVar2 = *(code **)(iVar11 + 0x24);
                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b0d;
                iVar11 = (*pcVar2)();
                bVar10 = (byte)local_2c;
                bVar8 = (byte)local_24;
              }
              piVar4 = (int *)0x0;
              if (iVar11 != -1) {
                piVar4 = local_3c;
              }
              bVar9 = bVar8;
              local_3c = piVar4;
              if (iVar11 != -1) {
                bVar9 = 0;
              }
            }
            if (bVar9 == bVar10) {
LAB_002b5aca:
              local_30 = -1;
              local_24 = piVar12;
              goto LAB_002b563f;
            }
            piVar6 = (int *)0xffffffff;
            piVar4 = *(int **)((int)local_20 + sVar13 * 4);
            if (piVar12 != (int *)0x0) {
              if ((undefined4 *)piVar12[2] < (undefined4 *)piVar12[3]) {
                piVar6 = *(int **)piVar12[2];
              }
              else {
                iVar11 = *piVar12;
                local_24 = piVar4;
                *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;
                pcVar2 = *(code **)(iVar11 + 0x24);
                *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5b37;
                piVar6 = (int *)(*pcVar2)();
                piVar4 = local_24;
              }
              if (piVar6 == (int *)0xffffffff) {
                piVar12 = (int *)0x0;
              }
            }
            if (piVar4 != piVar6) goto LAB_002b5aca;
            if ((uint)piVar12[2] < (uint)piVar12[3]) {
              piVar12[2] = piVar12[2] + 4;
            }
            else {
              iVar11 = *piVar12;
              *(int **)((int)aiStack_60 + iVar3 + 4) = piVar12;
              pcVar2 = *(code **)(iVar11 + 0x28);
              *(undefined4 *)((int)aiStack_60 + iVar3) = 0x2b5ac2;
              (*pcVar2)();
            }
            sVar13 = sVar13 + 1;
          } while (sVar13 < local_28);
        }
        local_24 = piVar12;
        iVar3 = local_30;
        if (local_28 == (int *)sVar13) {
          local_30 = -1;
          *param_7 = iVar3;
          goto LAB_002b5645;
        }
LAB_002b593e:
        local_30 = -1;
      }
    }
  }
LAB_002b563f:
  *param_11 = *param_11 | 4;
LAB_002b5645:
  *param_1 = local_24;
  param_1[1] = local_30;
  return;
}

