
void rtreeCheckNode(RtreeCheck *pCheck,int iDepth,u8 *aParent,i64 iNode)

{
  int iVar1;
  uint *puVar2;
  uint uVar3;
  uint uVar4;
  RtreeCheck *pCheck_00;
  int iVar5;
  int iVar6;
  float fVar7;
  void *__src;
  sqlite3_stmt *pStmt;
  int extraout_ECX;
  uint uVar8;
  float fVar9;
  RtreeCheck *pCheck_01;
  size_t __n;
  float fVar10;
  float fVar11;
  int unaff_EDI;
  undefined8 uVar12;
  RtreeCheck *aParent_00;
  undefined4 in_stack_ffffffa4;
  undefined4 in_stack_ffffffa8;
  int local_44;
  undefined1 *local_40;
  uint local_38;
  
  uVar12 = __x86_get_pc_thunk_di();
  local_38 = (uint)((ulonglong)uVar12 >> 0x20);
  pCheck_00 = (RtreeCheck *)uVar12;
  if (pCheck_00->rc != 0) {
    return;
  }
  pStmt = pCheck_00->pGetNode;
  if (pStmt == (sqlite3_stmt *)0x0) {
    pStmt = rtreeCheckPrepare(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab
                             );
    pCheck_00->pGetNode = pStmt;
    if (pCheck_00->rc != 0) {
      return;
    }
  }
  sqlite3_bind_int64(pStmt,1,CONCAT44(iDepth,pCheck));
  __n = 0;
  iVar5 = sqlite3_step(pCheck_00->pGetNode);
  local_40 = (undefined1 *)0x0;
  if (iVar5 == 100) {
    __n = sqlite3_column_bytes(pCheck_00->pGetNode,0);
    __src = sqlite3_column_blob(pCheck_00->pGetNode,0);
    iVar5 = sqlite3_initialize();
    if ((iVar5 == 0) &&
       (local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),
       local_40 != (undefined1 *)0x0)) {
      memcpy(local_40,__src,__n);
    }
    else {
      pCheck_00->rc = 7;
      __n = 0;
      local_40 = (undefined1 *)0x0;
    }
  }
  iVar5 = sqlite3_reset(pCheck_00->pGetNode);
  if ((pCheck_00->rc == 0) && (pCheck_00->rc = iVar5, iVar5 == 0)) {
    if (local_40 == (undefined1 *)0x0) {
      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth);
      return;
    }
  }
  else if (local_40 == (undefined1 *)0x0) {
    return;
  }
  if ((int)__n < 4) {
    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3079d),pCheck,iDepth,__n);
  }
  else if ((extraout_ECX == 0) &&
          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))
          ) {
    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38);
  }
  else {
    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];
    iVar6 = pCheck_00->nDim;
    iVar5 = iVar6 + 1;
    if (iVar1 * iVar5 * 8 + 3 < (int)__n) {
      local_44 = 0;
      if (iVar1 != 0) {
        do {
          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);
          uVar8 = *puVar2;
          uVar3 = puVar2[1];
          pCheck_01 = (RtreeCheck *)
                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                      uVar3 << 0x18);
          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
          iVar5 = 0;
          if (0 < iVar6) {
LAB_00100889:
            do {
              uVar3 = puVar2[iVar5 * 2 + 2];
              uVar4 = puVar2[iVar5 * 2 + 3];
              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                              uVar3 << 0x18);
              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |
                              uVar4 << 0x18);
              if (pCheck_00->bInt == 0) {
                if (fVar11 < fVar10) {
LAB_001008bf:
                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,
                                      iDepth);
                }
              }
              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;
              if (extraout_ECX == 0) {
LAB_0010087d:
                iVar5 = iVar5 + 1;
                if (pCheck_00->nDim <= iVar5) break;
                goto LAB_00100889;
              }
              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);
              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);
              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                             uVar3 << 0x18);
              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |
                             uVar4 << 0x18);
              if (pCheck_00->bInt == 0) {
                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;
                goto LAB_0010087d;
              }
              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {
LAB_00100858:
                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,
                                    iDepth);
                goto LAB_0010087d;
              }
              iVar5 = iVar5 + 1;
            } while (iVar5 < pCheck_00->nDim);
          }
          if (local_38 == 0) {
            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));
            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;
          }
          else {
            aParent_00 = pCheck;
            iVar5 = iDepth;
            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));
            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));
            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;
          }
          local_44 = local_44 + 1;
          if (local_44 == iVar1) break;
          iVar6 = pCheck_00->nDim;
          iVar5 = iVar6 + 1;
        } while( true );
      }
    }
    else {
      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);
    }
  }
  sqlite3_free(local_40);
  return;
}



void FUN_001006b0(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  uint *puVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  float fVar8;
  void *__src;
  int extraout_ECX;
  uint uVar9;
  float fVar10;
  uint uVar11;
  size_t __n;
  float fVar12;
  float fVar13;
  int unaff_EDI;
  undefined8 uVar14;
  int local_44;
  undefined1 *local_40;
  uint local_38;
  
  uVar14 = FUN_00036ac5();
  local_38 = (uint)((ulonglong)uVar14 >> 0x20);
  iVar5 = (int)uVar14;
  if (*(int *)(iVar5 + 0x28) != 0) {
    return;
  }
  iVar6 = *(int *)(iVar5 + 0x14);
  if (iVar6 == 0) {
    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),
                         *(undefined4 *)(iVar5 + 8));
    *(int *)(iVar5 + 0x14) = iVar6;
    if (*(int *)(iVar5 + 0x28) != 0) {
      return;
    }
  }
  FUN_000739f0(iVar6,1,param_1,param_2);
  __n = 0;
  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));
  local_40 = (undefined1 *)0x0;
  if (iVar6 == 100) {
    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);
    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);
    iVar6 = FUN_0005b490();
    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {
      memcpy(local_40,__src,__n);
    }
    else {
      *(undefined4 *)(iVar5 + 0x28) = 7;
      __n = 0;
      local_40 = (undefined1 *)0x0;
    }
  }
  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));
  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {
    if (local_40 == (undefined1 *)0x0) {
      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);
      return;
    }
  }
  else if (local_40 == (undefined1 *)0x0) {
    return;
  }
  if ((int)__n < 4) {
    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);
  }
  else if ((extraout_ECX == 0) &&
          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))
          ) {
    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);
  }
  else {
    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];
    iVar7 = *(int *)(iVar5 + 0x10);
    iVar6 = iVar7 + 1;
    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {
      local_44 = 0;
      if (iVar1 != 0) {
        do {
          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);
          uVar9 = *puVar2;
          uVar11 = puVar2[1];
          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |
                   uVar11 << 0x18;
          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
          iVar6 = 0;
          if (0 < iVar7) {
LAB_00100889:
            do {
              uVar3 = puVar2[iVar6 * 2 + 2];
              uVar4 = puVar2[iVar6 * 2 + 3];
              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                              uVar3 << 0x18);
              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |
                              uVar4 << 0x18);
              if (*(int *)(iVar5 + 0xc) == 0) {
                if (fVar13 < fVar12) {
LAB_001008bf:
                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);
                }
              }
              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;
              if (extraout_ECX == 0) {
LAB_0010087d:
                iVar6 = iVar6 + 1;
                if (*(int *)(iVar5 + 0x10) <= iVar6) break;
                goto LAB_00100889;
              }
              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);
              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);
              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                              uVar3 << 0x18);
              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |
                             uVar4 << 0x18);
              if (*(int *)(iVar5 + 0xc) == 0) {
                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;
                goto LAB_0010087d;
              }
              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {
LAB_00100858:
                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);
                goto LAB_0010087d;
              }
              iVar6 = iVar6 + 1;
            } while (iVar6 < *(int *)(iVar5 + 0x10));
          }
          if (local_38 == 0) {
            FUN_000ee110(uVar11,uVar9,param_1,param_2);
            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;
          }
          else {
            FUN_000ee110(uVar11,uVar9,param_1,param_2);
            FUN_001006b0(uVar11,uVar9);
            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;
          }
          local_44 = local_44 + 1;
          if (local_44 == iVar1) break;
          iVar7 = *(int *)(iVar5 + 0x10);
          iVar6 = iVar7 + 1;
        } while( true );
      }
    }
    else {
      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);
    }
  }
  FUN_00042800();
  return;
}


PUSH EBP
PUSH EDI
CALL 0x00036ac5
ADD EDI,0x7b771
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV dword ptr [ESP + 0x24],EDX
MOV EDX,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0x20],EDI
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV EBX,dword ptr [EDI + 0x28]
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ESP + 0x8],EAX
TEST EBX,EBX
JZ 0x001006f0
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EDI + 0x14]
MOV ESI,ECX
TEST EAX,EAX
JZ 0x00100a60
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0xc]
PUSH 0x1
PUSH EAX
CALL 0x000739f0
POP EBP
PUSH dword ptr [EDI + 0x14]
XOR EBP,EBP
CALL 0x000ccd70
ADD ESP,0x10
MOV dword ptr [ESP + 0x1c],0x0
CMP EAX,0x64
JZ 0x00100a10
SUB ESP,0xc
PUSH dword ptr [EDI + 0x14]
CALL 0x000ac730
MOV EDX,dword ptr [EDI + 0x28]
ADD ESP,0x10
TEST EDX,EDX
JZ 0x001008f0
MOV ECX,dword ptr [ESP + 0x1c]
TEST ECX,ECX
JZ 0x001006e3
CMP EBP,0x3
JLE 0x001009b0
TEST ESI,ESI
JZ 0x00100ae0
MOV ECX,dword ptr [ESP + 0x1c]
MOVZX EAX,byte ptr [ECX + 0x2]
MOVZX EDX,byte ptr [ECX + 0x3]
SHL EAX,0x8
LEA EBX,[EAX + EDX*0x1]
MOV EAX,dword ptr [EDI + 0x10]
MOV ECX,EBX
MOV dword ptr [ESP + 0x38],EBX
LEA EDX,[EAX + 0x1]
IMUL ECX,EDX
LEA ECX,[ECX*0x8 + 0x3]
CMP ECX,EBP
JGE 0x00100ab0
MOV ECX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x18],0x0
LEA ECX,[ECX + 0xfffb50b8]
MOV dword ptr [ESP + 0x34],ECX
TEST EBX,EBX
JZ 0x001009d0
MOV dword ptr [ESP + 0x3c],ESI
IMUL EDX,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [ESP + 0x1c]
LEA ECX,[ESI + EDX*0x8 + 0x4]
LEA ESI,[ECX + 0x8]
MOV EDX,dword ptr [ECX]
MOV EBX,dword ptr [ECX + 0x4]
MOV dword ptr [ESP + 0x30],ESI
MOV ESI,dword ptr [ESP + 0x20]
BSWAP EBX
BSWAP EDX
MOV dword ptr [ESP + 0x10],EBX
XOR EBX,EBX
LEA ESI,[ESI + 0xfffb5088]
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x2c],ESI
TEST EAX,EAX
JG 0x00100889
JMP 0x00100950
CMP EBP,ESI
SETG AL
TEST AL,AL
JNZ 0x001008bf
MOV EAX,dword ptr [ESP + 0x3c]
TEST EAX,EAX
JZ 0x0010087d
MOV EDX,dword ptr [EAX + EBX*0x8]
MOV EAX,dword ptr [EAX + EBX*0x8 + 0x4]
CMP dword ptr [EDI + 0xc],0x0
BSWAP EDX
BSWAP EAX
JNZ 0x00100930
MOV dword ptr [ESP + 0x28],EDX
FLD dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x28],EBP
FLD dword ptr [ESP + 0x28]
FXCH
FCOMIP ST0,ST1
FSTP ST0
JA 0x00100858
MOV dword ptr [ESP + 0x28],ESI
FLD dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x28],EAX
FLD dword ptr [ESP + 0x28]
FXCH
FCOMIP ST0,ST1
FSTP ST0
JBE 0x0010087d
LEA ESI,[ESI]
MOV dword ptr [ESP + 0x28],ECX
SUB ESP,0x8
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x28]
PUSH EBX
PUSH dword ptr [ESP + 0x4c]
PUSH EDI
CALL 0x000941c0
ADD ESP,0x20
MOV ECX,dword ptr [ESP + 0x28]
ADD EBX,0x1
CMP EBX,dword ptr [EDI + 0x10]
JGE 0x00100950
MOV EBP,dword ptr [ECX + EBX*0x8 + 0x8]
MOV ESI,dword ptr [ECX + EBX*0x8 + 0xc]
MOV EAX,dword ptr [EDI + 0xc]
BSWAP EBP
BSWAP ESI
TEST EAX,EAX
JNZ 0x001007f8
MOV dword ptr [ESP + 0x28],ESI
FLD dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x28],EBP
FLD dword ptr [ESP + 0x28]
FCOMIP ST0,ST1
FSTP ST0
SETA AL
TEST AL,AL
JZ 0x00100805
MOV dword ptr [ESP + 0x28],ECX
SUB ESP,0x8
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x28]
PUSH EBX
PUSH dword ptr [ESP + 0x44]
PUSH EDI
CALL 0x000941c0
ADD ESP,0x20
MOV ECX,dword ptr [ESP + 0x28]
JMP 0x00100805
MOV dword ptr [EDI + 0x28],EAX
TEST EAX,EAX
JNZ 0x00100745
MOV EBX,dword ptr [ESP + 0x1c]
TEST EBX,EBX
JNZ 0x0010074d
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x28]
LEA EAX,[EAX + 0xfffb500c]
PUSH EAX
PUSH EDI
CALL 0x000941c0
ADD ESP,0x10
JMP 0x001006e3
CMP ESI,EAX
JG 0x00100858
CMP EBP,EDX
JL 0x00100858
ADD EBX,0x1
CMP EBX,dword ptr [EDI + 0x10]
JL 0x00100889
LEA ESI,[ESI]
MOV EDX,dword ptr [ESP + 0x24]
TEST EDX,EDX
JZ 0x001009e8
PUSH dword ptr [ESP + 0xc]
XOR EDX,EDX
MOV EAX,EDI
PUSH dword ptr [ESP + 0xc]
MOV EBX,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [ESP + 0x1c]
PUSH ESI
PUSH EBX
CALL 0x000ee110
MOV EAX,dword ptr [ESP + 0x34]
LEA EDX,[EAX + -0x1]
POP EAX
POP ECX
PUSH ESI
PUSH EBX
MOV ECX,dword ptr [ESP + 0x40]
MOV EAX,EDI
CALL 0x001006b0
ADD dword ptr [EDI + 0x24],0x1
ADD ESP,0x10
ADD dword ptr [ESP + 0x18],0x1
MOV EAX,dword ptr [ESP + 0x18]
CMP EAX,dword ptr [ESP + 0x38]
JZ 0x001009d0
MOV EAX,dword ptr [EDI + 0x10]
LEA EDX,[EAX + 0x1]
JMP 0x001007b0
SUB ESP,0xc
PUSH EBP
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x38]
LEA EAX,[EAX + 0xfffb502c]
PUSH EAX
PUSH EDI
CALL 0x000941c0
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x60],EAX
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x00042800
PUSH dword ptr [ESP + 0xc]
MOV EDX,0x1
MOV EAX,EDI
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
CALL 0x000ee110
ADD dword ptr [EDI + 0x20],0x1
ADD ESP,0x10
JMP 0x00100994
SUB ESP,0x8
PUSH 0x0
PUSH dword ptr [EDI + 0x14]
CALL 0x0006a300
POP ECX
POP EBX
PUSH 0x0
PUSH dword ptr [EDI + 0x14]
MOV EBP,EAX
CALL 0x0006a5f0
MOV EBX,EAX
CALL 0x0005b490
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00100a90
MOV EAX,EBP
CDQ
CALL 0x000421f0
MOV dword ptr [ESP + 0x1c],EAX
TEST EAX,EAX
JZ 0x00100a90
SUB ESP,0x4
PUSH EBP
PUSH EBX
PUSH EAX
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x00015130
ADD ESP,0x10
JMP 0x0010072c
PUSH dword ptr [EDI + 0x8]
PUSH dword ptr [EDI + 0x4]
MOV EAX,dword ptr [ESP + 0x28]
LEA EAX,[EAX + 0xfffb4fdc]
PUSH EAX
PUSH EDI
CALL 0x000e3100
MOV EDX,dword ptr [EDI + 0x28]
ADD ESP,0x10
MOV dword ptr [EDI + 0x14],EAX
TEST EDX,EDX
JZ 0x001006fd
JMP 0x001006e3
MOV dword ptr [EDI + 0x28],0x7
XOR EBP,EBP
MOV dword ptr [ESP + 0x1c],0x0
JMP 0x0010072c
SUB ESP,0x8
PUSH EBP
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x38]
LEA EAX,[EAX + 0xfffb5050]
PUSH EAX
PUSH EDI
CALL 0x000941c0
ADD ESP,0x20
JMP 0x001009d0
MOV EDX,dword ptr [ESP + 0x1c]
MOVZX EAX,byte ptr [EDX]
MOVZX EDX,byte ptr [EDX + 0x1]
SHL EAX,0x8
ADD EAX,EDX
MOV dword ptr [ESP + 0x24],EAX
CMP EAX,0x28
JLE 0x0010075e
SUB ESP,0x4
PUSH dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x28]
LEA EAX,[EAX + 0xfffa5c95]
PUSH EAX
PUSH EDI
CALL 0x000941c0
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x70],EAX
ADD ESP,0x5c
JMP 0x001009db
(translation_unit "void FUN_001006b0(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  float fVar8;\n  void *__src;\n  int extraout_ECX;\n  uint uVar9;\n  float fVar10;\n  uint uVar11;\n  size_t __n;\n  float fVar12;\n  float fVar13;\n  int unaff_EDI;\n  undefined8 uVar14;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar14 = FUN_00036ac5();\n  local_38 = (uint)((ulonglong)uVar14 >> 0x20);\n  iVar5 = (int)uVar14;\n  if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }\n  iVar6 = *(int *)(iVar5 + 0x14);\n  if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }\n  FUN_000739f0(iVar6,1,param_1,param_2);\n  __n = 0;\n  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));\n  local_40 = (undefined1 *)0x0;\n  if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));\n  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }\n  FUN_00042800();\n  return;\n}\n\n" (function_definition "void FUN_001006b0(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  float fVar8;\n  void *__src;\n  int extraout_ECX;\n  uint uVar9;\n  float fVar10;\n  uint uVar11;\n  size_t __n;\n  float fVar12;\n  float fVar13;\n  int unaff_EDI;\n  undefined8 uVar14;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar14 = FUN_00036ac5();\n  local_38 = (uint)((ulonglong)uVar14 >> 0x20);\n  iVar5 = (int)uVar14;\n  if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }\n  iVar6 = *(int *)(iVar5 + 0x14);\n  if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }\n  FUN_000739f0(iVar6,1,param_1,param_2);\n  __n = 0;\n  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));\n  local_40 = (undefined1 *)0x0;\n  if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));\n  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }\n  FUN_00042800();\n  return;\n}" primitive_type (function_declarator "FUN_001006b0(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  float fVar8;\n  void *__src;\n  int extraout_ECX;\n  uint uVar9;\n  float fVar10;\n  uint uVar11;\n  size_t __n;\n  float fVar12;\n  float fVar13;\n  int unaff_EDI;\n  undefined8 uVar14;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar14 = FUN_00036ac5();\n  local_38 = (uint)((ulonglong)uVar14 >> 0x20);\n  iVar5 = (int)uVar14;\n  if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }\n  iVar6 = *(int *)(iVar5 + 0x14);\n  if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }\n  FUN_000739f0(iVar6,1,param_1,param_2);\n  __n = 0;\n  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));\n  local_40 = (undefined1 *)0x0;\n  if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));\n  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }\n  FUN_00042800();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "float fVar8;" primitive_type identifier ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "float fVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "float fVar12;" primitive_type identifier ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined1 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_38;" type_identifier identifier ;) (expression_statement "uVar14 = FUN_00036ac5();" (assignment_expression "uVar14 = FUN_00036ac5()" identifier = (call_expression "FUN_00036ac5()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_38 = (uint)((ulonglong)uVar14 >> 0x20);" (assignment_expression "local_38 = (uint)((ulonglong)uVar14 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar14 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar14 >> 0x20)" ( (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar5 = (int)uVar14;" (assignment_expression "iVar5 = (int)uVar14" identifier = (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x28) != 0" (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar6 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }" { (expression_statement "iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));" (assignment_expression "iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8))" identifier = (call_expression "FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8))" identifier (argument_list "(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8))" ( identifier , (binary_expression "unaff_EDI + 0x3074d" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(int *)(iVar5 + 0x14) = iVar6;" (assignment_expression "*(int *)(iVar5 + 0x14) = iVar6" (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }" if (parenthesized_expression "(*(int *)(iVar5 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x28) != 0" (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (expression_statement "FUN_000739f0(iVar6,1,param_1,param_2);" (call_expression "FUN_000739f0(iVar6,1,param_1,param_2)" identifier (argument_list "(iVar6,1,param_1,param_2)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "__n = 0;" (assignment_expression "__n = 0" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));" (assignment_expression "iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14))" identifier = (call_expression "FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar5 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "local_40 = (undefined1 *)0x0;" (assignment_expression "local_40 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }" if (parenthesized_expression "(iVar6 == 100)" ( (binary_expression "iVar6 == 100" identifier == number_literal) )) (compound_statement "{\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }" { (expression_statement "__n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);" (assignment_expression "__n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0)" identifier = (call_expression "FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0)" identifier (argument_list "(*(undefined4 *)(iVar5 + 0x14),0)" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "__src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);" (assignment_expression "__src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0)" identifier = (cast_expression "(void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0)" identifier (argument_list "(*(undefined4 *)(iVar5 + 0x14),0)" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "iVar6 = FUN_0005b490();" (assignment_expression "iVar6 = FUN_0005b490()" identifier = (call_expression "FUN_0005b490()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" if (parenthesized_expression "((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0))" ( (binary_expression "(iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)" ( (comma_expression "local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0" (assignment_expression "local_40 = (undefined1 *)FUN_000421f0()" identifier = (cast_expression "(undefined1 *)FUN_000421f0()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000421f0()" identifier (argument_list "()" ( ))))) , (binary_expression "local_40 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      memcpy(local_40,__src,__n);\n    }" { (expression_statement "memcpy(local_40,__src,__n);" (call_expression "memcpy(local_40,__src,__n)" identifier (argument_list "(local_40,__src,__n)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" else (compound_statement "{\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" { (expression_statement "*(undefined4 *)(iVar5 + 0x28) = 7;" (assignment_expression "*(undefined4 *)(iVar5 + 0x28) = 7" (pointer_expression "*(undefined4 *)(iVar5 + 0x28)" * (cast_expression "(undefined4 *)(iVar5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__n = 0;" (assignment_expression "__n = 0" identifier = number_literal) ;) (expression_statement "local_40 = (undefined1 *)0x0;" (assignment_expression "local_40 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));" (assignment_expression "iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14))" identifier = (call_expression "FUN_000ac730(*(undefined4 *)(iVar5 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar5 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) )))) ;) (if_statement "if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" if (parenthesized_expression "((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0))" ( (binary_expression "(*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)" (parenthesized_expression "(*(int *)(iVar5 + 0x28) == 0)" ( (binary_expression "*(int *)(iVar5 + 0x28) == 0" (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)" ( (comma_expression "*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0" (assignment_expression "*(int *)(iVar5 + 0x28) = iVar6" (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) = identifier) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }" { (if_statement "if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }" if (parenthesized_expression "(local_40 == (undefined1 *)0x0)" ( (binary_expression "local_40 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }" { (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2)" identifier (argument_list "(iVar5,unaff_EDI + 0x3077d,param_1,param_2)" ( identifier , (binary_expression "unaff_EDI + 0x3077d" identifier + number_literal) , identifier , identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" else (if_statement "if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" if (parenthesized_expression "(local_40 == (undefined1 *)0x0)" ( (binary_expression "local_40 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })))) (if_statement "if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" if (parenthesized_expression "((int)__n < 4)" ( (binary_expression "(int)__n < 4" (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }" { (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n)" identifier (argument_list "(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n)" ( identifier , (binary_expression "unaff_EDI + 0x3079d" identifier + number_literal) , identifier , identifier , identifier ))) ;) }) (else_clause "else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" else (if_statement "if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" if (parenthesized_expression "((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          )" ( (binary_expression "(extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))" (parenthesized_expression "(extraout_ECX == 0)" ( (binary_expression "extraout_ECX == 0" identifier == number_literal) )) && (parenthesized_expression "(local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))" ( (comma_expression "local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1])" (assignment_expression "local_38 = (uint)CONCAT11(*local_40,local_40[1])" identifier = (cast_expression "(uint)CONCAT11(*local_40,local_40[1])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(*local_40,local_40[1])" identifier (argument_list "(*local_40,local_40[1])" ( (pointer_expression "*local_40" * identifier) , (subscript_expression "local_40[1]" identifier [ number_literal ]) ))))) , (binary_expression "0x28 < CONCAT11(*local_40,local_40[1])" number_literal < (call_expression "CONCAT11(*local_40,local_40[1])" identifier (argument_list "(*local_40,local_40[1])" ( (pointer_expression "*local_40" * identifier) , (subscript_expression "local_40[1]" identifier [ number_literal ]) ))))) ))) )) (compound_statement "{\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }" { (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38)" identifier (argument_list "(iVar5,unaff_EDI + 0x21406,local_38)" ( identifier , (binary_expression "unaff_EDI + 0x21406" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" else (compound_statement "{\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" { (expression_statement "iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];" (assignment_expression "iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3]" identifier = (binary_expression "(uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3]" (binary_expression "(uint)(byte)local_40[2] * 0x100" (cast_expression "(uint)(byte)local_40[2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_40[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_40[2]" identifier [ number_literal ]))) * number_literal) + (cast_expression "(uint)(byte)local_40[3]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_40[3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_40[3]" identifier [ number_literal ]))))) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = iVar7 + 1;" (assignment_expression "iVar6 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }" if (parenthesized_expression "(iVar1 * iVar6 * 8 + 3 < (int)__n)" ( (binary_expression "iVar1 * iVar6 * 8 + 3 < (int)__n" (binary_expression "iVar1 * iVar6 * 8 + 3" (binary_expression "iVar1 * iVar6 * 8" (binary_expression "iVar1 * iVar6" identifier * identifier) * number_literal) + number_literal) < (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }" { (do_statement "do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );" do (compound_statement "{\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        }" { (expression_statement "puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);" (assignment_expression "puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4)" identifier = (cast_expression "(uint *)(local_40 + iVar6 * local_44 * 8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + iVar6 * local_44 * 8 + 4)" ( (binary_expression "local_40 + iVar6 * local_44 * 8 + 4" (binary_expression "local_40 + iVar6 * local_44 * 8" identifier + (binary_expression "iVar6 * local_44 * 8" (binary_expression "iVar6 * local_44" identifier * identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "uVar9 = *puVar2;" (assignment_expression "uVar9 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar11 = puVar2[1];" (assignment_expression "uVar11 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;" (assignment_expression "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18" identifier = (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" ( (binary_expression "uVar11 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" ( (binary_expression "uVar11 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar11 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }" { (labeled_statement "LAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));" statement_identifier : (do_statement "do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));" do (compound_statement "{\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            }" { (expression_statement "uVar3 = puVar2[iVar6 * 2 + 2];" (assignment_expression "uVar3 = puVar2[iVar6 * 2 + 2]" identifier = (subscript_expression "puVar2[iVar6 * 2 + 2]" identifier [ (binary_expression "iVar6 * 2 + 2" (binary_expression "iVar6 * 2" identifier * number_literal) + number_literal) ])) ;) (expression_statement "uVar4 = puVar2[iVar6 * 2 + 3];" (assignment_expression "uVar4 = puVar2[iVar6 * 2 + 3]" identifier = (subscript_expression "puVar2[iVar6 * 2 + 3]" identifier [ (binary_expression "iVar6 * 2 + 3" (binary_expression "iVar6 * 2" identifier * number_literal) + number_literal) ])) ;) (expression_statement "fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);" (assignment_expression "fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" identifier = (cast_expression "(float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);" (assignment_expression "fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" identifier = (cast_expression "(float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" ( (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;" if (parenthesized_expression "(*(int *)(iVar5 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar5 + 0xc) == 0" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }" { (if_statement "if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }" if (parenthesized_expression "(fVar13 < fVar12)" ( (binary_expression "fVar13 < fVar12" identifier < identifier) )) (compound_statement "{\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }" { (labeled_statement "LAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);" statement_identifier : (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2)" identifier (argument_list "(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2)" ( identifier , (binary_expression "unaff_EDI + 0x307f9" identifier + number_literal) , identifier , identifier , identifier , identifier ))) ;)) })) }) (else_clause "else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;" else (if_statement "if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;" if (parenthesized_expression "((int)fVar13 < (int)fVar12)" ( (binary_expression "(int)fVar13 < (int)fVar12" (cast_expression "(int)fVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)fVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001008bf;" goto statement_identifier ;)))) (if_statement "if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }" if (parenthesized_expression "(extraout_ECX == 0)" ( (binary_expression "extraout_ECX == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }" { (labeled_statement "LAB_0010087d:\n                iVar6 = iVar6 + 1;" statement_identifier : (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;)) (if_statement "if (*(int *)(iVar5 + 0x10) <= iVar6) break;" if (parenthesized_expression "(*(int *)(iVar5 + 0x10) <= iVar6)" ( (binary_expression "*(int *)(iVar5 + 0x10) <= iVar6" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00100889;" goto statement_identifier ;) })) (expression_statement "uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);" (assignment_expression "uVar3 = *(uint *)(extraout_ECX + iVar6 * 8)" identifier = (pointer_expression "*(uint *)(extraout_ECX + iVar6 * 8)" * (cast_expression "(uint *)(extraout_ECX + iVar6 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_ECX + iVar6 * 8)" ( (binary_expression "extraout_ECX + iVar6 * 8" identifier + (binary_expression "iVar6 * 8" identifier * number_literal)) ))))) ;) (expression_statement "uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);" (assignment_expression "uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8)" identifier = (pointer_expression "*(uint *)(extraout_ECX + 4 + iVar6 * 8)" * (cast_expression "(uint *)(extraout_ECX + 4 + iVar6 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_ECX + 4 + iVar6 * 8)" ( (binary_expression "extraout_ECX + 4 + iVar6 * 8" (binary_expression "extraout_ECX + 4" identifier + number_literal) + (binary_expression "iVar6 * 8" identifier * number_literal)) ))))) ;) (expression_statement "fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);" (assignment_expression "fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" identifier = (cast_expression "(float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);" (assignment_expression "fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" identifier = (cast_expression "(float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" ( (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }" if (parenthesized_expression "(*(int *)(iVar5 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar5 + 0xc) == 0" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }" { (if_statement "if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;" if (parenthesized_expression "((fVar12 < fVar10) || (fVar8 < fVar13))" ( (binary_expression "(fVar12 < fVar10) || (fVar8 < fVar13)" (parenthesized_expression "(fVar12 < fVar10)" ( (binary_expression "fVar12 < fVar10" identifier < identifier) )) || (parenthesized_expression "(fVar8 < fVar13)" ( (binary_expression "fVar8 < fVar13" identifier < identifier) ))) )) (goto_statement "goto LAB_00100858;" goto statement_identifier ;)) (goto_statement "goto LAB_0010087d;" goto statement_identifier ;) })) (if_statement "if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }" if (parenthesized_expression "(((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10))" ( (binary_expression "((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)" (parenthesized_expression "((int)fVar8 < (int)fVar13)" ( (binary_expression "(int)fVar8 < (int)fVar13" (cast_expression "(int)fVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)fVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)fVar12 < (int)fVar10)" ( (binary_expression "(int)fVar12 < (int)fVar10" (cast_expression "(int)fVar12" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)fVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }" { (labeled_statement "LAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);" statement_identifier : (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2)" identifier (argument_list "(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2)" ( identifier , (binary_expression "unaff_EDI + 0x30829" identifier + number_literal) , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_0010087d;" goto statement_identifier ;) })) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 < *(int *)(iVar5 + 0x10))" ( (binary_expression "iVar6 < *(int *)(iVar5 + 0x10)" identifier < (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) )) ;)) })) (if_statement "if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }" { (expression_statement "FUN_000ee110(uVar11,uVar9,param_1,param_2);" (call_expression "FUN_000ee110(uVar11,uVar9,param_1,param_2)" identifier (argument_list "(uVar11,uVar9,param_1,param_2)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;" (assignment_expression "*(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1" (pointer_expression "*(int *)(iVar5 + 0x20)" * (cast_expression "(int *)(iVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar5 + 0x20) + 1" (pointer_expression "*(int *)(iVar5 + 0x20)" * (cast_expression "(int *)(iVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }" else (compound_statement "{\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }" { (expression_statement "FUN_000ee110(uVar11,uVar9,param_1,param_2);" (call_expression "FUN_000ee110(uVar11,uVar9,param_1,param_2)" identifier (argument_list "(uVar11,uVar9,param_1,param_2)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_001006b0(uVar11,uVar9);" (call_expression "FUN_001006b0(uVar11,uVar9)" identifier (argument_list "(uVar11,uVar9)" ( identifier , identifier ))) ;) (expression_statement "*(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;" (assignment_expression "*(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar5 + 0x24) + 1" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (if_statement "if (local_44 == iVar1) break;" if (parenthesized_expression "(local_44 == iVar1)" ( (binary_expression "local_44 == iVar1" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = iVar7 + 1;" (assignment_expression "iVar6 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }" else (compound_statement "{\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }" { (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n)" identifier (argument_list "(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n)" ( identifier , (binary_expression "unaff_EDI + 0x307c1" identifier + number_literal) , identifier , identifier , identifier , identifier ))) ;) }))) }))))) (expression_statement "FUN_00042800();" (call_expression "FUN_00042800()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void rtreeCheckNode(RtreeCheck *pCheck,int iDepth,u8 *aParent,i64 iNode)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  RtreeCheck *pCheck_00;\n  int iVar5;\n  int iVar6;\n  float fVar7;\n  void *__src;\n  sqlite3_stmt *pStmt;\n  int extraout_ECX;\n  uint uVar8;\n  float fVar9;\n  RtreeCheck *pCheck_01;\n  size_t __n;\n  float fVar10;\n  float fVar11;\n  int unaff_EDI;\n  undefined8 uVar12;\n  RtreeCheck *aParent_00;\n  undefined4 in_stack_ffffffa4;\n  undefined4 in_stack_ffffffa8;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar12 = __x86_get_pc_thunk_di();\n  local_38 = (uint)((ulonglong)uVar12 >> 0x20);\n  pCheck_00 = (RtreeCheck *)uVar12;\n  if (pCheck_00->rc != 0) {\n    return;\n  }\n  pStmt = pCheck_00->pGetNode;\n  if (pStmt == (sqlite3_stmt *)0x0) {\n    pStmt = rtreeCheckPrepare(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab\n                             );\n    pCheck_00->pGetNode = pStmt;\n    if (pCheck_00->rc != 0) {\n      return;\n    }\n  }\n  sqlite3_bind_int64(pStmt,1,CONCAT44(iDepth,pCheck));\n  __n = 0;\n  iVar5 = sqlite3_step(pCheck_00->pGetNode);\n  local_40 = (undefined1 *)0x0;\n  if (iVar5 == 100) {\n    __n = sqlite3_column_bytes(pCheck_00->pGetNode,0);\n    __src = sqlite3_column_blob(pCheck_00->pGetNode,0);\n    iVar5 = sqlite3_initialize();\n    if ((iVar5 == 0) &&\n       (local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      pCheck_00->rc = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar5 = sqlite3_reset(pCheck_00->pGetNode);\n  if ((pCheck_00->rc == 0) && (pCheck_00->rc = iVar5, iVar5 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3079d),pCheck,iDepth,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar6 = pCheck_00->nDim;\n    iVar5 = iVar6 + 1;\n    if (iVar1 * iVar5 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }\n    else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }\n  }\n  sqlite3_free(local_40);\n  return;\n}\n\n" (function_definition "void rtreeCheckNode(RtreeCheck *pCheck,int iDepth,u8 *aParent,i64 iNode)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  RtreeCheck *pCheck_00;\n  int iVar5;\n  int iVar6;\n  float fVar7;\n  void *__src;\n  sqlite3_stmt *pStmt;\n  int extraout_ECX;\n  uint uVar8;\n  float fVar9;\n  RtreeCheck *pCheck_01;\n  size_t __n;\n  float fVar10;\n  float fVar11;\n  int unaff_EDI;\n  undefined8 uVar12;\n  RtreeCheck *aParent_00;\n  undefined4 in_stack_ffffffa4;\n  undefined4 in_stack_ffffffa8;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar12 = __x86_get_pc_thunk_di();\n  local_38 = (uint)((ulonglong)uVar12 >> 0x20);\n  pCheck_00 = (RtreeCheck *)uVar12;\n  if (pCheck_00->rc != 0) {\n    return;\n  }\n  pStmt = pCheck_00->pGetNode;\n  if (pStmt == (sqlite3_stmt *)0x0) {\n    pStmt = rtreeCheckPrepare(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab\n                             );\n    pCheck_00->pGetNode = pStmt;\n    if (pCheck_00->rc != 0) {\n      return;\n    }\n  }\n  sqlite3_bind_int64(pStmt,1,CONCAT44(iDepth,pCheck));\n  __n = 0;\n  iVar5 = sqlite3_step(pCheck_00->pGetNode);\n  local_40 = (undefined1 *)0x0;\n  if (iVar5 == 100) {\n    __n = sqlite3_column_bytes(pCheck_00->pGetNode,0);\n    __src = sqlite3_column_blob(pCheck_00->pGetNode,0);\n    iVar5 = sqlite3_initialize();\n    if ((iVar5 == 0) &&\n       (local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      pCheck_00->rc = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar5 = sqlite3_reset(pCheck_00->pGetNode);\n  if ((pCheck_00->rc == 0) && (pCheck_00->rc = iVar5, iVar5 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3079d),pCheck,iDepth,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar6 = pCheck_00->nDim;\n    iVar5 = iVar6 + 1;\n    if (iVar1 * iVar5 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }\n    else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }\n  }\n  sqlite3_free(local_40);\n  return;\n}" primitive_type (function_declarator "rtreeCheckNode(RtreeCheck *pCheck,int iDepth,u8 *aParent,i64 iNode)" identifier (parameter_list "(RtreeCheck *pCheck,int iDepth,u8 *aParent,i64 iNode)" ( (parameter_declaration "RtreeCheck *pCheck" type_identifier (pointer_declarator "*pCheck" * identifier)) , (parameter_declaration "int iDepth" primitive_type identifier) , (parameter_declaration "u8 *aParent" type_identifier (pointer_declarator "*aParent" * identifier)) , (parameter_declaration "i64 iNode" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  RtreeCheck *pCheck_00;\n  int iVar5;\n  int iVar6;\n  float fVar7;\n  void *__src;\n  sqlite3_stmt *pStmt;\n  int extraout_ECX;\n  uint uVar8;\n  float fVar9;\n  RtreeCheck *pCheck_01;\n  size_t __n;\n  float fVar10;\n  float fVar11;\n  int unaff_EDI;\n  undefined8 uVar12;\n  RtreeCheck *aParent_00;\n  undefined4 in_stack_ffffffa4;\n  undefined4 in_stack_ffffffa8;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar12 = __x86_get_pc_thunk_di();\n  local_38 = (uint)((ulonglong)uVar12 >> 0x20);\n  pCheck_00 = (RtreeCheck *)uVar12;\n  if (pCheck_00->rc != 0) {\n    return;\n  }\n  pStmt = pCheck_00->pGetNode;\n  if (pStmt == (sqlite3_stmt *)0x0) {\n    pStmt = rtreeCheckPrepare(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab\n                             );\n    pCheck_00->pGetNode = pStmt;\n    if (pCheck_00->rc != 0) {\n      return;\n    }\n  }\n  sqlite3_bind_int64(pStmt,1,CONCAT44(iDepth,pCheck));\n  __n = 0;\n  iVar5 = sqlite3_step(pCheck_00->pGetNode);\n  local_40 = (undefined1 *)0x0;\n  if (iVar5 == 100) {\n    __n = sqlite3_column_bytes(pCheck_00->pGetNode,0);\n    __src = sqlite3_column_blob(pCheck_00->pGetNode,0);\n    iVar5 = sqlite3_initialize();\n    if ((iVar5 == 0) &&\n       (local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      pCheck_00->rc = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar5 = sqlite3_reset(pCheck_00->pGetNode);\n  if ((pCheck_00->rc == 0) && (pCheck_00->rc = iVar5, iVar5 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3079d),pCheck,iDepth,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar6 = pCheck_00->nDim;\n    iVar5 = iVar6 + 1;\n    if (iVar1 * iVar5 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }\n    else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }\n  }\n  sqlite3_free(local_40);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "RtreeCheck *pCheck_00;" type_identifier (pointer_declarator "*pCheck_00" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "float fVar7;" primitive_type identifier ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "sqlite3_stmt *pStmt;" type_identifier (pointer_declarator "*pStmt" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "float fVar9;" primitive_type identifier ;) (declaration "RtreeCheck *pCheck_01;" type_identifier (pointer_declarator "*pCheck_01" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "float fVar10;" primitive_type identifier ;) (declaration "float fVar11;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "RtreeCheck *aParent_00;" type_identifier (pointer_declarator "*aParent_00" * identifier) ;) (declaration "undefined4 in_stack_ffffffa4;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffffa8;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined1 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_38;" type_identifier identifier ;) (expression_statement "uVar12 = __x86_get_pc_thunk_di();" (assignment_expression "uVar12 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_38 = (uint)((ulonglong)uVar12 >> 0x20);" (assignment_expression "local_38 = (uint)((ulonglong)uVar12 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar12 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar12 >> 0x20)" ( (binary_expression "(ulonglong)uVar12 >> 0x20" (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pCheck_00 = (RtreeCheck *)uVar12;" (assignment_expression "pCheck_00 = (RtreeCheck *)uVar12" identifier = (cast_expression "(RtreeCheck *)uVar12" ( (type_descriptor "RtreeCheck *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pCheck_00->rc != 0) {\n    return;\n  }" if (parenthesized_expression "(pCheck_00->rc != 0)" ( (binary_expression "pCheck_00->rc != 0" (field_expression "pCheck_00->rc" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pStmt = pCheck_00->pGetNode;" (assignment_expression "pStmt = pCheck_00->pGetNode" identifier = (field_expression "pCheck_00->pGetNode" identifier -> field_identifier)) ;) (if_statement "if (pStmt == (sqlite3_stmt *)0x0) {\n    pStmt = rtreeCheckPrepare(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab\n                             );\n    pCheck_00->pGetNode = pStmt;\n    if (pCheck_00->rc != 0) {\n      return;\n    }\n  }" if (parenthesized_expression "(pStmt == (sqlite3_stmt *)0x0)" ( (binary_expression "pStmt == (sqlite3_stmt *)0x0" identifier == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pStmt = rtreeCheckPrepare(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab\n                             );\n    pCheck_00->pGetNode = pStmt;\n    if (pCheck_00->rc != 0) {\n      return;\n    }\n  }" { (expression_statement "pStmt = rtreeCheckPrepare(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab\n                             );" (assignment_expression "pStmt = rtreeCheckPrepare(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab\n                             )" identifier = (call_expression "rtreeCheckPrepare(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab\n                             )" identifier (argument_list "(pCheck_00,(char *)(unaff_EDI + 0x3074d),pCheck_00->zDb,pCheck_00->zTab\n                             )" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x3074d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3074d)" ( (binary_expression "unaff_EDI + 0x3074d" identifier + number_literal) ))) , (field_expression "pCheck_00->zDb" identifier -> field_identifier) , (field_expression "pCheck_00->zTab" identifier -> field_identifier) )))) ;) (expression_statement "pCheck_00->pGetNode = pStmt;" (assignment_expression "pCheck_00->pGetNode = pStmt" (field_expression "pCheck_00->pGetNode" identifier -> field_identifier) = identifier) ;) (if_statement "if (pCheck_00->rc != 0) {\n      return;\n    }" if (parenthesized_expression "(pCheck_00->rc != 0)" ( (binary_expression "pCheck_00->rc != 0" (field_expression "pCheck_00->rc" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (expression_statement "sqlite3_bind_int64(pStmt,1,CONCAT44(iDepth,pCheck));" (call_expression "sqlite3_bind_int64(pStmt,1,CONCAT44(iDepth,pCheck))" identifier (argument_list "(pStmt,1,CONCAT44(iDepth,pCheck))" ( identifier , number_literal , (call_expression "CONCAT44(iDepth,pCheck)" identifier (argument_list "(iDepth,pCheck)" ( identifier , identifier ))) ))) ;) (expression_statement "__n = 0;" (assignment_expression "__n = 0" identifier = number_literal) ;) (expression_statement "iVar5 = sqlite3_step(pCheck_00->pGetNode);" (assignment_expression "iVar5 = sqlite3_step(pCheck_00->pGetNode)" identifier = (call_expression "sqlite3_step(pCheck_00->pGetNode)" identifier (argument_list "(pCheck_00->pGetNode)" ( (field_expression "pCheck_00->pGetNode" identifier -> field_identifier) )))) ;) (expression_statement "local_40 = (undefined1 *)0x0;" (assignment_expression "local_40 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar5 == 100) {\n    __n = sqlite3_column_bytes(pCheck_00->pGetNode,0);\n    __src = sqlite3_column_blob(pCheck_00->pGetNode,0);\n    iVar5 = sqlite3_initialize();\n    if ((iVar5 == 0) &&\n       (local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      pCheck_00->rc = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }" if (parenthesized_expression "(iVar5 == 100)" ( (binary_expression "iVar5 == 100" identifier == number_literal) )) (compound_statement "{\n    __n = sqlite3_column_bytes(pCheck_00->pGetNode,0);\n    __src = sqlite3_column_blob(pCheck_00->pGetNode,0);\n    iVar5 = sqlite3_initialize();\n    if ((iVar5 == 0) &&\n       (local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      pCheck_00->rc = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }" { (expression_statement "__n = sqlite3_column_bytes(pCheck_00->pGetNode,0);" (assignment_expression "__n = sqlite3_column_bytes(pCheck_00->pGetNode,0)" identifier = (call_expression "sqlite3_column_bytes(pCheck_00->pGetNode,0)" identifier (argument_list "(pCheck_00->pGetNode,0)" ( (field_expression "pCheck_00->pGetNode" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "__src = sqlite3_column_blob(pCheck_00->pGetNode,0);" (assignment_expression "__src = sqlite3_column_blob(pCheck_00->pGetNode,0)" identifier = (call_expression "sqlite3_column_blob(pCheck_00->pGetNode,0)" identifier (argument_list "(pCheck_00->pGetNode,0)" ( (field_expression "pCheck_00->pGetNode" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "iVar5 = sqlite3_initialize();" (assignment_expression "iVar5 = sqlite3_initialize()" identifier = (call_expression "sqlite3_initialize()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar5 == 0) &&\n       (local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      pCheck_00->rc = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" if (parenthesized_expression "((iVar5 == 0) &&\n       (local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0))" ( (binary_expression "(iVar5 == 0) &&\n       (local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0)" ( (comma_expression "local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)),\n       local_40 != (undefined1 *)0x0" (assignment_expression "local_40 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4))" identifier = (cast_expression "(undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Malloc(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4))" identifier (argument_list "(CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4))" ( (call_expression "CONCAT44(in_stack_ffffffa8,in_stack_ffffffa4)" identifier (argument_list "(in_stack_ffffffa8,in_stack_ffffffa4)" ( identifier , identifier ))) ))))) , (binary_expression "local_40 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      memcpy(local_40,__src,__n);\n    }" { (expression_statement "memcpy(local_40,__src,__n);" (call_expression "memcpy(local_40,__src,__n)" identifier (argument_list "(local_40,__src,__n)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n      pCheck_00->rc = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" else (compound_statement "{\n      pCheck_00->rc = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" { (expression_statement "pCheck_00->rc = 7;" (assignment_expression "pCheck_00->rc = 7" (field_expression "pCheck_00->rc" identifier -> field_identifier) = number_literal) ;) (expression_statement "__n = 0;" (assignment_expression "__n = 0" identifier = number_literal) ;) (expression_statement "local_40 = (undefined1 *)0x0;" (assignment_expression "local_40 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "iVar5 = sqlite3_reset(pCheck_00->pGetNode);" (assignment_expression "iVar5 = sqlite3_reset(pCheck_00->pGetNode)" identifier = (call_expression "sqlite3_reset(pCheck_00->pGetNode)" identifier (argument_list "(pCheck_00->pGetNode)" ( (field_expression "pCheck_00->pGetNode" identifier -> field_identifier) )))) ;) (if_statement "if ((pCheck_00->rc == 0) && (pCheck_00->rc = iVar5, iVar5 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" if (parenthesized_expression "((pCheck_00->rc == 0) && (pCheck_00->rc = iVar5, iVar5 == 0))" ( (binary_expression "(pCheck_00->rc == 0) && (pCheck_00->rc = iVar5, iVar5 == 0)" (parenthesized_expression "(pCheck_00->rc == 0)" ( (binary_expression "pCheck_00->rc == 0" (field_expression "pCheck_00->rc" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(pCheck_00->rc = iVar5, iVar5 == 0)" ( (comma_expression "pCheck_00->rc = iVar5, iVar5 == 0" (assignment_expression "pCheck_00->rc = iVar5" (field_expression "pCheck_00->rc" identifier -> field_identifier) = identifier) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (local_40 == (undefined1 *)0x0) {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth);\n      return;\n    }\n  }" { (if_statement "if (local_40 == (undefined1 *)0x0) {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth);\n      return;\n    }" if (parenthesized_expression "(local_40 == (undefined1 *)0x0)" ( (binary_expression "local_40 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth);\n      return;\n    }" { (expression_statement "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth);" (call_expression "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth)" identifier (argument_list "(pCheck_00,(char *)(unaff_EDI + 0x3077d),pCheck,iDepth)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x3077d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3077d)" ( (binary_expression "unaff_EDI + 0x3077d" identifier + number_literal) ))) , identifier , identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" else (if_statement "if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" if (parenthesized_expression "(local_40 == (undefined1 *)0x0)" ( (binary_expression "local_40 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })))) (if_statement "if ((int)__n < 4) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3079d),pCheck,iDepth,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar6 = pCheck_00->nDim;\n    iVar5 = iVar6 + 1;\n    if (iVar1 * iVar5 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }\n    else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }\n  }" if (parenthesized_expression "((int)__n < 4)" ( (binary_expression "(int)__n < 4" (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3079d),pCheck,iDepth,__n);\n  }" { (expression_statement "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3079d),pCheck,iDepth,__n);" (call_expression "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x3079d),pCheck,iDepth,__n)" identifier (argument_list "(pCheck_00,(char *)(unaff_EDI + 0x3079d),pCheck,iDepth,__n)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x3079d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3079d)" ( (binary_expression "unaff_EDI + 0x3079d" identifier + number_literal) ))) , identifier , identifier , identifier ))) ;) }) (else_clause "else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar6 = pCheck_00->nDim;\n    iVar5 = iVar6 + 1;\n    if (iVar1 * iVar5 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }\n    else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }\n  }" else (if_statement "if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar6 = pCheck_00->nDim;\n    iVar5 = iVar6 + 1;\n    if (iVar1 * iVar5 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }\n    else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }\n  }" if (parenthesized_expression "((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          )" ( (binary_expression "(extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))" (parenthesized_expression "(extraout_ECX == 0)" ( (binary_expression "extraout_ECX == 0" identifier == number_literal) )) && (parenthesized_expression "(local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))" ( (comma_expression "local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1])" (assignment_expression "local_38 = (uint)CONCAT11(*local_40,local_40[1])" identifier = (cast_expression "(uint)CONCAT11(*local_40,local_40[1])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(*local_40,local_40[1])" identifier (argument_list "(*local_40,local_40[1])" ( (pointer_expression "*local_40" * identifier) , (subscript_expression "local_40[1]" identifier [ number_literal ]) ))))) , (binary_expression "0x28 < CONCAT11(*local_40,local_40[1])" number_literal < (call_expression "CONCAT11(*local_40,local_40[1])" identifier (argument_list "(*local_40,local_40[1])" ( (pointer_expression "*local_40" * identifier) , (subscript_expression "local_40[1]" identifier [ number_literal ]) ))))) ))) )) (compound_statement "{\n    rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38);\n  }" { (expression_statement "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38);" (call_expression "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38)" identifier (argument_list "(pCheck_00,(char *)(unaff_EDI + 0x21406),local_38)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x21406)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x21406)" ( (binary_expression "unaff_EDI + 0x21406" identifier + number_literal) ))) , identifier ))) ;) }) (else_clause "else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar6 = pCheck_00->nDim;\n    iVar5 = iVar6 + 1;\n    if (iVar1 * iVar5 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }\n    else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }\n  }" else (compound_statement "{\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar6 = pCheck_00->nDim;\n    iVar5 = iVar6 + 1;\n    if (iVar1 * iVar5 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }\n    else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }\n  }" { (expression_statement "iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];" (assignment_expression "iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3]" identifier = (binary_expression "(uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3]" (binary_expression "(uint)(byte)local_40[2] * 0x100" (cast_expression "(uint)(byte)local_40[2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_40[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_40[2]" identifier [ number_literal ]))) * number_literal) + (cast_expression "(uint)(byte)local_40[3]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_40[3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_40[3]" identifier [ number_literal ]))))) ;) (expression_statement "iVar6 = pCheck_00->nDim;" (assignment_expression "iVar6 = pCheck_00->nDim" identifier = (field_expression "pCheck_00->nDim" identifier -> field_identifier)) ;) (expression_statement "iVar5 = iVar6 + 1;" (assignment_expression "iVar5 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (if_statement "if (iVar1 * iVar5 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }\n    else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }" if (parenthesized_expression "(iVar1 * iVar5 * 8 + 3 < (int)__n)" ( (binary_expression "iVar1 * iVar5 * 8 + 3 < (int)__n" (binary_expression "iVar1 * iVar5 * 8 + 3" (binary_expression "iVar1 * iVar5 * 8" (binary_expression "iVar1 * iVar5" identifier * identifier) * number_literal) + number_literal) < (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }\n    }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );\n      }" { (do_statement "do {\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        } while( true );" do (compound_statement "{\n          puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);\n          uVar8 = *puVar2;\n          uVar3 = puVar2[1];\n          pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);\n          uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n          iVar5 = 0;\n          if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }\n          if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar6 = pCheck_00->nDim;\n          iVar5 = iVar6 + 1;\n        }" { (expression_statement "puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4);" (assignment_expression "puVar2 = (uint *)(local_40 + iVar5 * local_44 * 8 + 4)" identifier = (cast_expression "(uint *)(local_40 + iVar5 * local_44 * 8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + iVar5 * local_44 * 8 + 4)" ( (binary_expression "local_40 + iVar5 * local_44 * 8 + 4" (binary_expression "local_40 + iVar5 * local_44 * 8" identifier + (binary_expression "iVar5 * local_44 * 8" (binary_expression "iVar5 * local_44" identifier * identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "uVar8 = *puVar2;" (assignment_expression "uVar8 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar3 = puVar2[1];" (assignment_expression "uVar3 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18);" (assignment_expression "pCheck_01 = (RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18)" identifier = (cast_expression "(RtreeCheck *)\n                      (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18)" ( (type_descriptor "RtreeCheck *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                      uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" identifier = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar6) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);\n          }" { (labeled_statement "LAB_00100889:\n            do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);" statement_identifier : (do_statement "do {\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            } while (iVar5 < pCheck_00->nDim);" do (compound_statement "{\n              uVar3 = puVar2[iVar5 * 2 + 2];\n              uVar4 = puVar2[iVar5 * 2 + 3];\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);\n              fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);\n              fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }\n              iVar5 = iVar5 + 1;\n            }" { (expression_statement "uVar3 = puVar2[iVar5 * 2 + 2];" (assignment_expression "uVar3 = puVar2[iVar5 * 2 + 2]" identifier = (subscript_expression "puVar2[iVar5 * 2 + 2]" identifier [ (binary_expression "iVar5 * 2 + 2" (binary_expression "iVar5 * 2" identifier * number_literal) + number_literal) ])) ;) (expression_statement "uVar4 = puVar2[iVar5 * 2 + 3];" (assignment_expression "uVar4 = puVar2[iVar5 * 2 + 3]" identifier = (subscript_expression "puVar2[iVar5 * 2 + 3]" identifier [ (binary_expression "iVar5 * 2 + 3" (binary_expression "iVar5 * 2" identifier * number_literal) + number_literal) ])) ;) (expression_statement "fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);" (assignment_expression "fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" identifier = (cast_expression "(float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);" (assignment_expression "fVar11 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" identifier = (cast_expression "(float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" ( (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (pCheck_00->bInt == 0) {\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }\n              else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;" if (parenthesized_expression "(pCheck_00->bInt == 0)" ( (binary_expression "pCheck_00->bInt == 0" (field_expression "pCheck_00->bInt" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }\n              }" { (if_statement "if (fVar11 < fVar10) {\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }" if (parenthesized_expression "(fVar11 < fVar10)" ( (binary_expression "fVar11 < fVar10" identifier < identifier) )) (compound_statement "{\nLAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);\n                }" { (labeled_statement "LAB_001008bf:\n                  rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);" statement_identifier : (expression_statement "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth);" (call_expression "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth)" identifier (argument_list "(pCheck_00,(char *)(unaff_EDI + 0x307f9),iVar5,local_44,pCheck,\n                                      iDepth)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x307f9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x307f9)" ( (binary_expression "unaff_EDI + 0x307f9" identifier + number_literal) ))) , identifier , identifier , identifier , identifier ))) ;)) })) }) (else_clause "else if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;" else (if_statement "if ((int)fVar11 < (int)fVar10) goto LAB_001008bf;" if (parenthesized_expression "((int)fVar11 < (int)fVar10)" ( (binary_expression "(int)fVar11 < (int)fVar10" (cast_expression "(int)fVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)fVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001008bf;" goto statement_identifier ;)))) (if_statement "if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }" if (parenthesized_expression "(extraout_ECX == 0)" ( (binary_expression "extraout_ECX == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010087d:\n                iVar5 = iVar5 + 1;\n                if (pCheck_00->nDim <= iVar5) break;\n                goto LAB_00100889;\n              }" { (labeled_statement "LAB_0010087d:\n                iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (if_statement "if (pCheck_00->nDim <= iVar5) break;" if (parenthesized_expression "(pCheck_00->nDim <= iVar5)" ( (binary_expression "pCheck_00->nDim <= iVar5" (field_expression "pCheck_00->nDim" identifier -> field_identifier) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00100889;" goto statement_identifier ;) })) (expression_statement "uVar3 = *(uint *)(extraout_ECX + iVar5 * 8);" (assignment_expression "uVar3 = *(uint *)(extraout_ECX + iVar5 * 8)" identifier = (pointer_expression "*(uint *)(extraout_ECX + iVar5 * 8)" * (cast_expression "(uint *)(extraout_ECX + iVar5 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_ECX + iVar5 * 8)" ( (binary_expression "extraout_ECX + iVar5 * 8" identifier + (binary_expression "iVar5 * 8" identifier * number_literal)) ))))) ;) (expression_statement "uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8);" (assignment_expression "uVar4 = *(uint *)(extraout_ECX + 4 + iVar5 * 8)" identifier = (pointer_expression "*(uint *)(extraout_ECX + 4 + iVar5 * 8)" * (cast_expression "(uint *)(extraout_ECX + 4 + iVar5 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_ECX + 4 + iVar5 * 8)" ( (binary_expression "extraout_ECX + 4 + iVar5 * 8" (binary_expression "extraout_ECX + 4" identifier + number_literal) + (binary_expression "iVar5 * 8" identifier * number_literal)) ))))) ;) (expression_statement "fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18);" (assignment_expression "fVar9 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18)" identifier = (cast_expression "(float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);" (assignment_expression "fVar7 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" identifier = (cast_expression "(float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" ( (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (pCheck_00->bInt == 0) {\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }" if (parenthesized_expression "(pCheck_00->bInt == 0)" ( (binary_expression "pCheck_00->bInt == 0" (field_expression "pCheck_00->bInt" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }" { (if_statement "if ((fVar10 < fVar9) || (fVar7 < fVar11)) goto LAB_00100858;" if (parenthesized_expression "((fVar10 < fVar9) || (fVar7 < fVar11))" ( (binary_expression "(fVar10 < fVar9) || (fVar7 < fVar11)" (parenthesized_expression "(fVar10 < fVar9)" ( (binary_expression "fVar10 < fVar9" identifier < identifier) )) || (parenthesized_expression "(fVar7 < fVar11)" ( (binary_expression "fVar7 < fVar11" identifier < identifier) ))) )) (goto_statement "goto LAB_00100858;" goto statement_identifier ;)) (goto_statement "goto LAB_0010087d;" goto statement_identifier ;) })) (if_statement "if (((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)) {\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }" if (parenthesized_expression "(((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9))" ( (binary_expression "((int)fVar7 < (int)fVar11) || ((int)fVar10 < (int)fVar9)" (parenthesized_expression "((int)fVar7 < (int)fVar11)" ( (binary_expression "(int)fVar7 < (int)fVar11" (cast_expression "(int)fVar7" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)fVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)fVar10 < (int)fVar9)" ( (binary_expression "(int)fVar10 < (int)fVar9" (cast_expression "(int)fVar10" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)fVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\nLAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);\n                goto LAB_0010087d;\n              }" { (labeled_statement "LAB_00100858:\n                rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);" statement_identifier : (expression_statement "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth);" (call_expression "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth)" identifier (argument_list "(pCheck_00,(char *)(unaff_EDI + 0x30829),iVar5,local_44,pCheck,\n                                    iDepth)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x30829)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x30829)" ( (binary_expression "unaff_EDI + 0x30829" identifier + number_literal) ))) , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_0010087d;" goto statement_identifier ;) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < pCheck_00->nDim)" ( (binary_expression "iVar5 < pCheck_00->nDim" identifier < (field_expression "pCheck_00->nDim" identifier -> field_identifier)) )) ;)) })) (if_statement "if (local_38 == 0) {\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }\n          else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (compound_statement "{\n            rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;\n          }" { (expression_statement "rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));" (call_expression "rtreeCheckMapping(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck))" identifier (argument_list "(pCheck_00,1,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck))" ( identifier , number_literal , (call_expression "CONCAT44(uVar8,pCheck_01)" identifier (argument_list "(uVar8,pCheck_01)" ( identifier , identifier ))) , (call_expression "CONCAT44(iDepth,pCheck)" identifier (argument_list "(iDepth,pCheck)" ( identifier , identifier ))) ))) ;) (expression_statement "pCheck_00->nLeaf = pCheck_00->nLeaf + 1;" (assignment_expression "pCheck_00->nLeaf = pCheck_00->nLeaf + 1" (field_expression "pCheck_00->nLeaf" identifier -> field_identifier) = (binary_expression "pCheck_00->nLeaf + 1" (field_expression "pCheck_00->nLeaf" identifier -> field_identifier) + number_literal)) ;) }) (else_clause "else {\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }" else (compound_statement "{\n            aParent_00 = pCheck;\n            iVar5 = iDepth;\n            rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));\n            rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));\n            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;\n          }" { (expression_statement "aParent_00 = pCheck;" (assignment_expression "aParent_00 = pCheck" identifier = identifier) ;) (expression_statement "iVar5 = iDepth;" (assignment_expression "iVar5 = iDepth" identifier = identifier) ;) (expression_statement "rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck));" (call_expression "rtreeCheckMapping(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck))" identifier (argument_list "(pCheck_00,0,CONCAT44(uVar8,pCheck_01),CONCAT44(iDepth,pCheck))" ( identifier , number_literal , (call_expression "CONCAT44(uVar8,pCheck_01)" identifier (argument_list "(uVar8,pCheck_01)" ( identifier , identifier ))) , (call_expression "CONCAT44(iDepth,pCheck)" identifier (argument_list "(iDepth,pCheck)" ( identifier , identifier ))) ))) ;) (expression_statement "rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5));" (call_expression "rtreeCheckNode(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5))" identifier (argument_list "(pCheck_01,uVar8,(u8 *)aParent_00,CONCAT44(in_stack_ffffffa4,iVar5))" ( identifier , identifier , (cast_expression "(u8 *)aParent_00" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (call_expression "CONCAT44(in_stack_ffffffa4,iVar5)" identifier (argument_list "(in_stack_ffffffa4,iVar5)" ( identifier , identifier ))) ))) ;) (expression_statement "pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;" (assignment_expression "pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1" (field_expression "pCheck_00->nNonLeaf" identifier -> field_identifier) = (binary_expression "pCheck_00->nNonLeaf + 1" (field_expression "pCheck_00->nNonLeaf" identifier -> field_identifier) + number_literal)) ;) }))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (if_statement "if (local_44 == iVar1) break;" if (parenthesized_expression "(local_44 == iVar1)" ( (binary_expression "local_44 == iVar1" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = pCheck_00->nDim;" (assignment_expression "iVar6 = pCheck_00->nDim" identifier = (field_expression "pCheck_00->nDim" identifier -> field_identifier)) ;) (expression_statement "iVar5 = iVar6 + 1;" (assignment_expression "iVar5 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }" else (compound_statement "{\n      rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);\n    }" { (expression_statement "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n);" (call_expression "rtreeCheckAppendMsg(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n)" identifier (argument_list "(pCheck_00,(char *)(unaff_EDI + 0x307c1),pCheck,iDepth,iVar1,__n)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x307c1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x307c1)" ( (binary_expression "unaff_EDI + 0x307c1" identifier + number_literal) ))) , identifier , identifier , identifier , identifier ))) ;) }))) }))))) (expression_statement "sqlite3_free(local_40);" (call_expression "sqlite3_free(local_40)" identifier (argument_list "(local_40)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001006b0(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  float fVar8;\n  void *__src;\n  int extraout_ECX;\n  uint uVar9;\n  float fVar10;\n  uint uVar11;\n  size_t __n;\n  float fVar12;\n  float fVar13;\n  int unaff_EDI;\n  undefined8 uVar14;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar14 = FUN_00036ac5();\n  local_38 = (uint)((ulonglong)uVar14 >> 0x20);\n  iVar5 = (int)uVar14;\n  if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }\n  iVar6 = *(int *)(iVar5 + 0x14);\n  if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }\n  FUN_000739f0(iVar6,1,param_1,param_2);\n  __n = 0;\n  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));\n  local_40 = (undefined1 *)0x0;\n  if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));\n  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }\n  FUN_00042800();\n  return;\n}\n\n" (function_definition "void FUN_001006b0(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  float fVar8;\n  void *__src;\n  int extraout_ECX;\n  uint uVar9;\n  float fVar10;\n  uint uVar11;\n  size_t __n;\n  float fVar12;\n  float fVar13;\n  int unaff_EDI;\n  undefined8 uVar14;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar14 = FUN_00036ac5();\n  local_38 = (uint)((ulonglong)uVar14 >> 0x20);\n  iVar5 = (int)uVar14;\n  if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }\n  iVar6 = *(int *)(iVar5 + 0x14);\n  if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }\n  FUN_000739f0(iVar6,1,param_1,param_2);\n  __n = 0;\n  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));\n  local_40 = (undefined1 *)0x0;\n  if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));\n  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }\n  FUN_00042800();\n  return;\n}" primitive_type (function_declarator "FUN_001006b0(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  float fVar8;\n  void *__src;\n  int extraout_ECX;\n  uint uVar9;\n  float fVar10;\n  uint uVar11;\n  size_t __n;\n  float fVar12;\n  float fVar13;\n  int unaff_EDI;\n  undefined8 uVar14;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar14 = FUN_00036ac5();\n  local_38 = (uint)((ulonglong)uVar14 >> 0x20);\n  iVar5 = (int)uVar14;\n  if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }\n  iVar6 = *(int *)(iVar5 + 0x14);\n  if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }\n  FUN_000739f0(iVar6,1,param_1,param_2);\n  __n = 0;\n  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));\n  local_40 = (undefined1 *)0x0;\n  if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));\n  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }\n  FUN_00042800();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "float fVar8;" primitive_type identifier ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "float fVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "float fVar12;" primitive_type identifier ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined1 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_38;" type_identifier identifier ;) (expression_statement "uVar14 = FUN_00036ac5();" (assignment_expression "uVar14 = FUN_00036ac5()" identifier = (call_expression "FUN_00036ac5()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_38 = (uint)((ulonglong)uVar14 >> 0x20);" (assignment_expression "local_38 = (uint)((ulonglong)uVar14 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar14 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar14 >> 0x20)" ( (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar5 = (int)uVar14;" (assignment_expression "iVar5 = (int)uVar14" identifier = (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x28) != 0" (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar6 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }" { (expression_statement "iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));" (assignment_expression "iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8))" identifier = (call_expression "FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8))" identifier (argument_list "(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8))" ( identifier , (binary_expression "unaff_EDI + 0x3074d" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(int *)(iVar5 + 0x14) = iVar6;" (assignment_expression "*(int *)(iVar5 + 0x14) = iVar6" (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }" if (parenthesized_expression "(*(int *)(iVar5 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x28) != 0" (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (expression_statement "FUN_000739f0(iVar6,1,param_1,param_2);" (call_expression "FUN_000739f0(iVar6,1,param_1,param_2)" identifier (argument_list "(iVar6,1,param_1,param_2)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "__n = 0;" (assignment_expression "__n = 0" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));" (assignment_expression "iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14))" identifier = (call_expression "FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar5 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "local_40 = (undefined1 *)0x0;" (assignment_expression "local_40 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }" if (parenthesized_expression "(iVar6 == 100)" ( (binary_expression "iVar6 == 100" identifier == number_literal) )) (compound_statement "{\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }" { (expression_statement "__n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);" (assignment_expression "__n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0)" identifier = (call_expression "FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0)" identifier (argument_list "(*(undefined4 *)(iVar5 + 0x14),0)" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "__src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);" (assignment_expression "__src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0)" identifier = (cast_expression "(void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0)" identifier (argument_list "(*(undefined4 *)(iVar5 + 0x14),0)" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "iVar6 = FUN_0005b490();" (assignment_expression "iVar6 = FUN_0005b490()" identifier = (call_expression "FUN_0005b490()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" if (parenthesized_expression "((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0))" ( (binary_expression "(iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)" ( (comma_expression "local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0" (assignment_expression "local_40 = (undefined1 *)FUN_000421f0()" identifier = (cast_expression "(undefined1 *)FUN_000421f0()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000421f0()" identifier (argument_list "()" ( ))))) , (binary_expression "local_40 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      memcpy(local_40,__src,__n);\n    }" { (expression_statement "memcpy(local_40,__src,__n);" (call_expression "memcpy(local_40,__src,__n)" identifier (argument_list "(local_40,__src,__n)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" else (compound_statement "{\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" { (expression_statement "*(undefined4 *)(iVar5 + 0x28) = 7;" (assignment_expression "*(undefined4 *)(iVar5 + 0x28) = 7" (pointer_expression "*(undefined4 *)(iVar5 + 0x28)" * (cast_expression "(undefined4 *)(iVar5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__n = 0;" (assignment_expression "__n = 0" identifier = number_literal) ;) (expression_statement "local_40 = (undefined1 *)0x0;" (assignment_expression "local_40 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));" (assignment_expression "iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14))" identifier = (call_expression "FUN_000ac730(*(undefined4 *)(iVar5 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar5 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) )))) ;) (if_statement "if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" if (parenthesized_expression "((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0))" ( (binary_expression "(*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)" (parenthesized_expression "(*(int *)(iVar5 + 0x28) == 0)" ( (binary_expression "*(int *)(iVar5 + 0x28) == 0" (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)" ( (comma_expression "*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0" (assignment_expression "*(int *)(iVar5 + 0x28) = iVar6" (pointer_expression "*(int *)(iVar5 + 0x28)" * (cast_expression "(int *)(iVar5 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) = identifier) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }" { (if_statement "if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }" if (parenthesized_expression "(local_40 == (undefined1 *)0x0)" ( (binary_expression "local_40 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }" { (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2)" identifier (argument_list "(iVar5,unaff_EDI + 0x3077d,param_1,param_2)" ( identifier , (binary_expression "unaff_EDI + 0x3077d" identifier + number_literal) , identifier , identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" else (if_statement "if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" if (parenthesized_expression "(local_40 == (undefined1 *)0x0)" ( (binary_expression "local_40 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })))) (if_statement "if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" if (parenthesized_expression "((int)__n < 4)" ( (binary_expression "(int)__n < 4" (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }" { (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n)" identifier (argument_list "(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n)" ( identifier , (binary_expression "unaff_EDI + 0x3079d" identifier + number_literal) , identifier , identifier , identifier ))) ;) }) (else_clause "else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" else (if_statement "if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" if (parenthesized_expression "((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          )" ( (binary_expression "(extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))" (parenthesized_expression "(extraout_ECX == 0)" ( (binary_expression "extraout_ECX == 0" identifier == number_literal) )) && (parenthesized_expression "(local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))" ( (comma_expression "local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1])" (assignment_expression "local_38 = (uint)CONCAT11(*local_40,local_40[1])" identifier = (cast_expression "(uint)CONCAT11(*local_40,local_40[1])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(*local_40,local_40[1])" identifier (argument_list "(*local_40,local_40[1])" ( (pointer_expression "*local_40" * identifier) , (subscript_expression "local_40[1]" identifier [ number_literal ]) ))))) , (binary_expression "0x28 < CONCAT11(*local_40,local_40[1])" number_literal < (call_expression "CONCAT11(*local_40,local_40[1])" identifier (argument_list "(*local_40,local_40[1])" ( (pointer_expression "*local_40" * identifier) , (subscript_expression "local_40[1]" identifier [ number_literal ]) ))))) ))) )) (compound_statement "{\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }" { (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38)" identifier (argument_list "(iVar5,unaff_EDI + 0x21406,local_38)" ( identifier , (binary_expression "unaff_EDI + 0x21406" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" else (compound_statement "{\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" { (expression_statement "iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];" (assignment_expression "iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3]" identifier = (binary_expression "(uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3]" (binary_expression "(uint)(byte)local_40[2] * 0x100" (cast_expression "(uint)(byte)local_40[2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_40[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_40[2]" identifier [ number_literal ]))) * number_literal) + (cast_expression "(uint)(byte)local_40[3]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_40[3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_40[3]" identifier [ number_literal ]))))) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = iVar7 + 1;" (assignment_expression "iVar6 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }" if (parenthesized_expression "(iVar1 * iVar6 * 8 + 3 < (int)__n)" ( (binary_expression "iVar1 * iVar6 * 8 + 3 < (int)__n" (binary_expression "iVar1 * iVar6 * 8 + 3" (binary_expression "iVar1 * iVar6 * 8" (binary_expression "iVar1 * iVar6" identifier * identifier) * number_literal) + number_literal) < (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }" { (do_statement "do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );" do (compound_statement "{\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        }" { (expression_statement "puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);" (assignment_expression "puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4)" identifier = (cast_expression "(uint *)(local_40 + iVar6 * local_44 * 8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + iVar6 * local_44 * 8 + 4)" ( (binary_expression "local_40 + iVar6 * local_44 * 8 + 4" (binary_expression "local_40 + iVar6 * local_44 * 8" identifier + (binary_expression "iVar6 * local_44 * 8" (binary_expression "iVar6 * local_44" identifier * identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "uVar9 = *puVar2;" (assignment_expression "uVar9 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar11 = puVar2[1];" (assignment_expression "uVar11 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;" (assignment_expression "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18" identifier = (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" ( (binary_expression "uVar11 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" ( (binary_expression "uVar11 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar11 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }" { (labeled_statement "LAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));" statement_identifier : (do_statement "do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));" do (compound_statement "{\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            }" { (expression_statement "uVar3 = puVar2[iVar6 * 2 + 2];" (assignment_expression "uVar3 = puVar2[iVar6 * 2 + 2]" identifier = (subscript_expression "puVar2[iVar6 * 2 + 2]" identifier [ (binary_expression "iVar6 * 2 + 2" (binary_expression "iVar6 * 2" identifier * number_literal) + number_literal) ])) ;) (expression_statement "uVar4 = puVar2[iVar6 * 2 + 3];" (assignment_expression "uVar4 = puVar2[iVar6 * 2 + 3]" identifier = (subscript_expression "puVar2[iVar6 * 2 + 3]" identifier [ (binary_expression "iVar6 * 2 + 3" (binary_expression "iVar6 * 2" identifier * number_literal) + number_literal) ])) ;) (expression_statement "fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);" (assignment_expression "fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" identifier = (cast_expression "(float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);" (assignment_expression "fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" identifier = (cast_expression "(float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" ( (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;" if (parenthesized_expression "(*(int *)(iVar5 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar5 + 0xc) == 0" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }" { (if_statement "if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }" if (parenthesized_expression "(fVar13 < fVar12)" ( (binary_expression "fVar13 < fVar12" identifier < identifier) )) (compound_statement "{\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }" { (labeled_statement "LAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);" statement_identifier : (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2)" identifier (argument_list "(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2)" ( identifier , (binary_expression "unaff_EDI + 0x307f9" identifier + number_literal) , identifier , identifier , identifier , identifier ))) ;)) })) }) (else_clause "else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;" else (if_statement "if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;" if (parenthesized_expression "((int)fVar13 < (int)fVar12)" ( (binary_expression "(int)fVar13 < (int)fVar12" (cast_expression "(int)fVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)fVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001008bf;" goto statement_identifier ;)))) (if_statement "if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }" if (parenthesized_expression "(extraout_ECX == 0)" ( (binary_expression "extraout_ECX == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }" { (labeled_statement "LAB_0010087d:\n                iVar6 = iVar6 + 1;" statement_identifier : (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;)) (if_statement "if (*(int *)(iVar5 + 0x10) <= iVar6) break;" if (parenthesized_expression "(*(int *)(iVar5 + 0x10) <= iVar6)" ( (binary_expression "*(int *)(iVar5 + 0x10) <= iVar6" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00100889;" goto statement_identifier ;) })) (expression_statement "uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);" (assignment_expression "uVar3 = *(uint *)(extraout_ECX + iVar6 * 8)" identifier = (pointer_expression "*(uint *)(extraout_ECX + iVar6 * 8)" * (cast_expression "(uint *)(extraout_ECX + iVar6 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_ECX + iVar6 * 8)" ( (binary_expression "extraout_ECX + iVar6 * 8" identifier + (binary_expression "iVar6 * 8" identifier * number_literal)) ))))) ;) (expression_statement "uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);" (assignment_expression "uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8)" identifier = (pointer_expression "*(uint *)(extraout_ECX + 4 + iVar6 * 8)" * (cast_expression "(uint *)(extraout_ECX + 4 + iVar6 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_ECX + 4 + iVar6 * 8)" ( (binary_expression "extraout_ECX + 4 + iVar6 * 8" (binary_expression "extraout_ECX + 4" identifier + number_literal) + (binary_expression "iVar6 * 8" identifier * number_literal)) ))))) ;) (expression_statement "fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);" (assignment_expression "fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" identifier = (cast_expression "(float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);" (assignment_expression "fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" identifier = (cast_expression "(float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" ( (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }" if (parenthesized_expression "(*(int *)(iVar5 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar5 + 0xc) == 0" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }" { (if_statement "if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;" if (parenthesized_expression "((fVar12 < fVar10) || (fVar8 < fVar13))" ( (binary_expression "(fVar12 < fVar10) || (fVar8 < fVar13)" (parenthesized_expression "(fVar12 < fVar10)" ( (binary_expression "fVar12 < fVar10" identifier < identifier) )) || (parenthesized_expression "(fVar8 < fVar13)" ( (binary_expression "fVar8 < fVar13" identifier < identifier) ))) )) (goto_statement "goto LAB_00100858;" goto statement_identifier ;)) (goto_statement "goto LAB_0010087d;" goto statement_identifier ;) })) (if_statement "if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }" if (parenthesized_expression "(((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10))" ( (binary_expression "((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)" (parenthesized_expression "((int)fVar8 < (int)fVar13)" ( (binary_expression "(int)fVar8 < (int)fVar13" (cast_expression "(int)fVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)fVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)fVar12 < (int)fVar10)" ( (binary_expression "(int)fVar12 < (int)fVar10" (cast_expression "(int)fVar12" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)fVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }" { (labeled_statement "LAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);" statement_identifier : (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2)" identifier (argument_list "(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2)" ( identifier , (binary_expression "unaff_EDI + 0x30829" identifier + number_literal) , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_0010087d;" goto statement_identifier ;) })) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 < *(int *)(iVar5 + 0x10))" ( (binary_expression "iVar6 < *(int *)(iVar5 + 0x10)" identifier < (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) )) ;)) })) (if_statement "if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }" { (expression_statement "FUN_000ee110(uVar11,uVar9,param_1,param_2);" (call_expression "FUN_000ee110(uVar11,uVar9,param_1,param_2)" identifier (argument_list "(uVar11,uVar9,param_1,param_2)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;" (assignment_expression "*(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1" (pointer_expression "*(int *)(iVar5 + 0x20)" * (cast_expression "(int *)(iVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar5 + 0x20) + 1" (pointer_expression "*(int *)(iVar5 + 0x20)" * (cast_expression "(int *)(iVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }" else (compound_statement "{\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }" { (expression_statement "FUN_000ee110(uVar11,uVar9,param_1,param_2);" (call_expression "FUN_000ee110(uVar11,uVar9,param_1,param_2)" identifier (argument_list "(uVar11,uVar9,param_1,param_2)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_001006b0(uVar11,uVar9);" (call_expression "FUN_001006b0(uVar11,uVar9)" identifier (argument_list "(uVar11,uVar9)" ( identifier , identifier ))) ;) (expression_statement "*(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;" (assignment_expression "*(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar5 + 0x24) + 1" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (if_statement "if (local_44 == iVar1) break;" if (parenthesized_expression "(local_44 == iVar1)" ( (binary_expression "local_44 == iVar1" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = iVar7 + 1;" (assignment_expression "iVar6 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }" else (compound_statement "{\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }" { (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n)" identifier (argument_list "(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n)" ( identifier , (binary_expression "unaff_EDI + 0x307c1" identifier + number_literal) , identifier , identifier , identifier , identifier ))) ;) }))) }))))) (expression_statement "FUN_00042800();" (call_expression "FUN_00042800()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (return_statement return ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (return_statement return ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) ))))) , (binary_expression LIT < (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) ))))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT * IDENT) * LIT) + LIT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (binary_expression IDENT * IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT ))) ;)) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT ))) ;) }))) }))))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001006b0(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  float fVar8;\n  void *__src;\n  int extraout_ECX;\n  uint uVar9;\n  float fVar10;\n  uint uVar11;\n  size_t __n;\n  float fVar12;\n  float fVar13;\n  int unaff_EDI;\n  undefined8 uVar14;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar14 = FUN_00036ac5();\n  local_38 = (uint)((ulonglong)uVar14 >> 0x20);\n  iVar5 = (int)uVar14;\n  if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }\n  iVar6 = *(int *)(iVar5 + 0x14);\n  if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }\n  FUN_000739f0(iVar6,1,param_1,param_2);\n  __n = 0;\n  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));\n  local_40 = (undefined1 *)0x0;\n  if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));\n  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }\n  FUN_00042800();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001006b0(undefined4 param_1,undefined4 param_2)" (identifier "FUN_001006b0") (parameter_list "(undefined4 param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  float fVar8;\n  void *__src;\n  int extraout_ECX;\n  uint uVar9;\n  float fVar10;\n  uint uVar11;\n  size_t __n;\n  float fVar12;\n  float fVar13;\n  int unaff_EDI;\n  undefined8 uVar14;\n  int local_44;\n  undefined1 *local_40;\n  uint local_38;\n  \n  uVar14 = FUN_00036ac5();\n  local_38 = (uint)((ulonglong)uVar14 >> 0x20);\n  iVar5 = (int)uVar14;\n  if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }\n  iVar6 = *(int *)(iVar5 + 0x14);\n  if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }\n  FUN_000739f0(iVar6,1,param_1,param_2);\n  __n = 0;\n  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));\n  local_40 = (undefined1 *)0x0;\n  if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }\n  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));\n  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }\n  if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }\n  FUN_00042800();\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint *puVar2;" (type_identifier "uint") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "float fVar8;" (primitive_type "float") (identifier "fVar8") (; ";")) (declaration "void *__src;" (primitive_type "void") (pointer_declarator "*__src" (* "*") (identifier "__src")) (; ";")) (declaration "int extraout_ECX;" (primitive_type "int") (identifier "extraout_ECX") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "float fVar10;" (primitive_type "float") (identifier "fVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "float fVar12;" (primitive_type "float") (identifier "fVar12") (; ";")) (declaration "float fVar13;" (primitive_type "float") (identifier "fVar13") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "undefined1 *local_40;" (type_identifier "undefined1") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (expression_statement "uVar14 = FUN_00036ac5();" (assignment_expression "uVar14 = FUN_00036ac5()" (identifier "uVar14") (= "=") (call_expression "FUN_00036ac5()" (identifier "FUN_00036ac5") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_38 = (uint)((ulonglong)uVar14 >> 0x20);" (assignment_expression "local_38 = (uint)((ulonglong)uVar14 >> 0x20)" (identifier "local_38") (= "=") (call_expression "(uint)((ulonglong)uVar14 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar14 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar14")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar5 = (int)uVar14;" (assignment_expression "iVar5 = (int)uVar14" (identifier "iVar5") (= "=") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x28) != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x28) != 0" (pointer_expression "*(int *)(iVar5 + 0x28)" (* "*") (cast_expression "(int *)(iVar5 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x28)" (( "(") (binary_expression "iVar5 + 0x28" (identifier "iVar5") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar6 = *(int *)(iVar5 + 0x14)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar5 + 0x14)" (* "*") (cast_expression "(int *)(iVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) {\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));\n    *(int *)(iVar5 + 0x14) = iVar6;\n    if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8));" (assignment_expression "iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8))" (identifier "iVar6") (= "=") (call_expression "FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8))" (identifier "FUN_000e3100") (argument_list "(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),\n                         *(undefined4 *)(iVar5 + 8))" (( "(") (identifier "iVar5") (, ",") (binary_expression "unaff_EDI + 0x3074d" (identifier "unaff_EDI") (+ "+") (number_literal "0x3074d")) (, ",") (pointer_expression "*(undefined4 *)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "*(int *)(iVar5 + 0x14) = iVar6;" (assignment_expression "*(int *)(iVar5 + 0x14) = iVar6" (pointer_expression "*(int *)(iVar5 + 0x14)" (* "*") (cast_expression "(int *)(iVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x28) != 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x28) != 0" (pointer_expression "*(int *)(iVar5 + 0x28)" (* "*") (cast_expression "(int *)(iVar5 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x28)" (( "(") (binary_expression "iVar5 + 0x28" (identifier "iVar5") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_000739f0(iVar6,1,param_1,param_2);" (call_expression "FUN_000739f0(iVar6,1,param_1,param_2)" (identifier "FUN_000739f0") (argument_list "(iVar6,1,param_1,param_2)" (( "(") (identifier "iVar6") (, ",") (number_literal "1") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "__n = 0;" (assignment_expression "__n = 0" (identifier "__n") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));" (assignment_expression "iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14))" (identifier "iVar6") (= "=") (call_expression "FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14))" (identifier "FUN_000ccd70") (argument_list "(*(undefined4 *)(iVar5 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "local_40 = (undefined1 *)0x0;" (assignment_expression "local_40 = (undefined1 *)0x0" (identifier "local_40") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar6 == 100) {\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar6 == 100)" (( "(") (binary_expression "iVar6 == 100" (identifier "iVar6") (== "==") (number_literal "100")) () ")")) (compound_statement "{\n    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);\n    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);\n    iVar6 = FUN_0005b490();\n    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }\n  }" ({ "{") (expression_statement "__n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);" (assignment_expression "__n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0)" (identifier "__n") (= "=") (call_expression "FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0)" (identifier "FUN_0006a300") (argument_list "(*(undefined4 *)(iVar5 + 0x14),0)" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "__src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);" (assignment_expression "__src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0)" (identifier "__src") (= "=") (cast_expression "(void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0)" (identifier "FUN_0006a5f0") (argument_list "(*(undefined4 *)(iVar5 + 0x14),0)" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "iVar6 = FUN_0005b490();" (assignment_expression "iVar6 = FUN_0005b490()" (identifier "iVar6") (= "=") (call_expression "FUN_0005b490()" (identifier "FUN_0005b490") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {\n      memcpy(local_40,__src,__n);\n    }\n    else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" (if "if") (parenthesized_expression "((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0))" (( "(") (binary_expression "(iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)" (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)" (( "(") (comma_expression "local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0" (assignment_expression "local_40 = (undefined1 *)FUN_000421f0()" (identifier "local_40") (= "=") (cast_expression "(undefined1 *)FUN_000421f0()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000421f0()" (identifier "FUN_000421f0") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "local_40 != (undefined1 *)0x0" (identifier "local_40") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      memcpy(local_40,__src,__n);\n    }" ({ "{") (expression_statement "memcpy(local_40,__src,__n);" (call_expression "memcpy(local_40,__src,__n)" (identifier "memcpy") (argument_list "(local_40,__src,__n)" (( "(") (identifier "local_40") (, ",") (identifier "__src") (, ",") (identifier "__n") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" (else "else") (compound_statement "{\n      *(undefined4 *)(iVar5 + 0x28) = 7;\n      __n = 0;\n      local_40 = (undefined1 *)0x0;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar5 + 0x28) = 7;" (assignment_expression "*(undefined4 *)(iVar5 + 0x28) = 7" (pointer_expression "*(undefined4 *)(iVar5 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x28)" (( "(") (binary_expression "iVar5 + 0x28" (identifier "iVar5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "__n = 0;" (assignment_expression "__n = 0" (identifier "__n") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = (undefined1 *)0x0;" (assignment_expression "local_40 = (undefined1 *)0x0" (identifier "local_40") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));" (assignment_expression "iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14))" (identifier "iVar6") (= "=") (call_expression "FUN_000ac730(*(undefined4 *)(iVar5 + 0x14))" (identifier "FUN_000ac730") (argument_list "(*(undefined4 *)(iVar5 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (if_statement "if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }\n  else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" (if "if") (parenthesized_expression "((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0))" (( "(") (binary_expression "(*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)" (parenthesized_expression "(*(int *)(iVar5 + 0x28) == 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x28) == 0" (pointer_expression "*(int *)(iVar5 + 0x28)" (* "*") (cast_expression "(int *)(iVar5 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x28)" (( "(") (binary_expression "iVar5 + 0x28" (identifier "iVar5") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)" (( "(") (comma_expression "*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0" (assignment_expression "*(int *)(iVar5 + 0x28) = iVar6" (pointer_expression "*(int *)(iVar5 + 0x28)" (* "*") (cast_expression "(int *)(iVar5 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x28)" (( "(") (binary_expression "iVar5 + 0x28" (identifier "iVar5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "iVar6")) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }\n  }" ({ "{") (if_statement "if (local_40 == (undefined1 *)0x0) {\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }" (if "if") (parenthesized_expression "(local_40 == (undefined1 *)0x0)" (( "(") (binary_expression "local_40 == (undefined1 *)0x0" (identifier "local_40") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);\n      return;\n    }" ({ "{") (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2)" (identifier "FUN_000941c0") (argument_list "(iVar5,unaff_EDI + 0x3077d,param_1,param_2)" (( "(") (identifier "iVar5") (, ",") (binary_expression "unaff_EDI + 0x3077d" (identifier "unaff_EDI") (+ "+") (number_literal "0x3077d")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" (else "else") (if_statement "if (local_40 == (undefined1 *)0x0) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_40 == (undefined1 *)0x0)" (( "(") (binary_expression "local_40 == (undefined1 *)0x0" (identifier "local_40") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))))) (if_statement "if ((int)__n < 4) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }\n  else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" (if "if") (parenthesized_expression "((int)__n < 4)" (( "(") (binary_expression "(int)__n < 4" (cast_expression "(int)__n" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__n")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);\n  }" ({ "{") (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n)" (identifier "FUN_000941c0") (argument_list "(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n)" (( "(") (identifier "iVar5") (, ",") (binary_expression "unaff_EDI + 0x3079d" (identifier "unaff_EDI") (+ "+") (number_literal "0x3079d")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "__n") () ")"))) (; ";")) (} "}")) (else_clause "else if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" (else "else") (if_statement "if ((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          ) {\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }\n  else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" (if "if") (parenthesized_expression "((extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))\n          )" (( "(") (binary_expression "(extraout_ECX == 0) &&\n          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))" (parenthesized_expression "(extraout_ECX == 0)" (( "(") (binary_expression "extraout_ECX == 0" (identifier "extraout_ECX") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))" (( "(") (comma_expression "local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1])" (assignment_expression "local_38 = (uint)CONCAT11(*local_40,local_40[1])" (identifier "local_38") (= "=") (cast_expression "(uint)CONCAT11(*local_40,local_40[1])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CONCAT11(*local_40,local_40[1])" (identifier "CONCAT11") (argument_list "(*local_40,local_40[1])" (( "(") (pointer_expression "*local_40" (* "*") (identifier "local_40")) (, ",") (subscript_expression "local_40[1]" (identifier "local_40") ([ "[") (number_literal "1") (] "]")) () ")"))))) (, ",") (binary_expression "0x28 < CONCAT11(*local_40,local_40[1])" (number_literal "0x28") (< "<") (call_expression "CONCAT11(*local_40,local_40[1])" (identifier "CONCAT11") (argument_list "(*local_40,local_40[1])" (( "(") (pointer_expression "*local_40" (* "*") (identifier "local_40")) (, ",") (subscript_expression "local_40[1]" (identifier "local_40") ([ "[") (number_literal "1") (] "]")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);\n  }" ({ "{") (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38)" (identifier "FUN_000941c0") (argument_list "(iVar5,unaff_EDI + 0x21406,local_38)" (( "(") (identifier "iVar5") (, ",") (binary_expression "unaff_EDI + 0x21406" (identifier "unaff_EDI") (+ "+") (number_literal "0x21406")) (, ",") (identifier "local_38") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" (else "else") (compound_statement "{\n    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];\n    iVar7 = *(int *)(iVar5 + 0x10);\n    iVar6 = iVar7 + 1;\n    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }\n  }" ({ "{") (expression_statement "iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];" (assignment_expression "iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3]" (identifier "iVar1") (= "=") (binary_expression "(uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3]" (binary_expression "(uint)(byte)local_40[2] * 0x100" (cast_expression "(uint)(byte)local_40[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_40[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")))) (* "*") (number_literal "0x100")) (+ "+") (cast_expression "(uint)(byte)local_40[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_40[3]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_40[3]" (identifier "local_40") ([ "[") (number_literal "3") (] "]")))))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x10)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar6 = iVar7 + 1;" (assignment_expression "iVar6 = iVar7 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar1 * iVar6 * 8 + 3 < (int)__n) {\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }\n    else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }" (if "if") (parenthesized_expression "(iVar1 * iVar6 * 8 + 3 < (int)__n)" (( "(") (binary_expression "iVar1 * iVar6 * 8 + 3 < (int)__n" (binary_expression "iVar1 * iVar6 * 8 + 3" (binary_expression "iVar1 * iVar6 * 8" (binary_expression "iVar1 * iVar6" (identifier "iVar1") (* "*") (identifier "iVar6")) (* "*") (number_literal "8")) (+ "+") (number_literal "3")) (< "<") (cast_expression "(int)__n" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__n"))) () ")")) (compound_statement "{\n      local_44 = 0;\n      if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }\n    }" ({ "{") (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar1 != 0) {\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        } while( true );" (do "do") (compound_statement "{\n          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);\n          uVar9 = *puVar2;\n          uVar11 = puVar2[1];\n          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;\n          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n          iVar6 = 0;\n          if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }\n          if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }\n          local_44 = local_44 + 1;\n          if (local_44 == iVar1) break;\n          iVar7 = *(int *)(iVar5 + 0x10);\n          iVar6 = iVar7 + 1;\n        }" ({ "{") (expression_statement "puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);" (assignment_expression "puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4)" (identifier "puVar2") (= "=") (cast_expression "(uint *)(local_40 + iVar6 * local_44 * 8 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + iVar6 * local_44 * 8 + 4)" (( "(") (binary_expression "local_40 + iVar6 * local_44 * 8 + 4" (binary_expression "local_40 + iVar6 * local_44 * 8" (identifier "local_40") (+ "+") (binary_expression "iVar6 * local_44 * 8" (binary_expression "iVar6 * local_44" (identifier "iVar6") (* "*") (identifier "local_44")) (* "*") (number_literal "8"))) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "uVar9 = *puVar2;" (assignment_expression "uVar9 = *puVar2" (identifier "uVar9") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar11 = puVar2[1];" (assignment_expression "uVar11 = puVar2[1]" (identifier "uVar11") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18;" (assignment_expression "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18" (identifier "uVar11") (= "=") (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |\n                   uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" (identifier "uVar11") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" (( "(") (binary_expression "uVar11 & 0xff0000" (identifier "uVar11") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" (( "(") (binary_expression "uVar11 & 0xff00" (identifier "uVar11") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar11 << 0x18" (identifier "uVar11") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (identifier "uVar9") (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar7) {\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }" (if "if") (parenthesized_expression "(0 < iVar7)" (( "(") (binary_expression "0 < iVar7" (number_literal "0") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\nLAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));\n          }" ({ "{") (labeled_statement "LAB_00100889:\n            do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));" (statement_identifier "LAB_00100889") (: ":") (do_statement "do {\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            } while (iVar6 < *(int *)(iVar5 + 0x10));" (do "do") (compound_statement "{\n              uVar3 = puVar2[iVar6 * 2 + 2];\n              uVar4 = puVar2[iVar6 * 2 + 3];\n              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;\n              if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }\n              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);\n              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);\n              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);\n              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);\n              if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }\n              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }\n              iVar6 = iVar6 + 1;\n            }" ({ "{") (expression_statement "uVar3 = puVar2[iVar6 * 2 + 2];" (assignment_expression "uVar3 = puVar2[iVar6 * 2 + 2]" (identifier "uVar3") (= "=") (subscript_expression "puVar2[iVar6 * 2 + 2]" (identifier "puVar2") ([ "[") (binary_expression "iVar6 * 2 + 2" (binary_expression "iVar6 * 2" (identifier "iVar6") (* "*") (number_literal "2")) (+ "+") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "uVar4 = puVar2[iVar6 * 2 + 3];" (assignment_expression "uVar4 = puVar2[iVar6 * 2 + 3]" (identifier "uVar4") (= "=") (subscript_expression "puVar2[iVar6 * 2 + 3]" (identifier "puVar2") ([ "[") (binary_expression "iVar6 * 2 + 3" (binary_expression "iVar6 * 2" (identifier "iVar6") (* "*") (number_literal "2")) (+ "+") (number_literal "3")) (] "]"))) (; ";")) (expression_statement "fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);" (assignment_expression "fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" (identifier "fVar12") (= "=") (cast_expression "(float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" (( "(") (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" (( "(") (binary_expression "uVar3 & 0xff0000" (identifier "uVar3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" (( "(") (binary_expression "uVar3 & 0xff00" (identifier "uVar3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar3 << 0x18" (identifier "uVar3") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18);" (assignment_expression "fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" (identifier "fVar13") (= "=") (cast_expression "(float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18)" (( "(") (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                              uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" (( "(") (binary_expression "uVar4 & 0xff0000" (identifier "uVar4") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" (( "(") (binary_expression "uVar4 & 0xff00" (identifier "uVar4") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if (*(int *)(iVar5 + 0xc) == 0) {\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }\n              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0xc) == 0" (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }\n              }" ({ "{") (if_statement "if (fVar13 < fVar12) {\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }" (if "if") (parenthesized_expression "(fVar13 < fVar12)" (( "(") (binary_expression "fVar13 < fVar12" (identifier "fVar13") (< "<") (identifier "fVar12")) () ")")) (compound_statement "{\nLAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);\n                }" ({ "{") (labeled_statement "LAB_001008bf:\n                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);" (statement_identifier "LAB_001008bf") (: ":") (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2)" (identifier "FUN_000941c0") (argument_list "(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2)" (( "(") (identifier "iVar5") (, ",") (binary_expression "unaff_EDI + 0x307f9" (identifier "unaff_EDI") (+ "+") (number_literal "0x307f9")) (, ",") (identifier "iVar6") (, ",") (identifier "local_44") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;" (else "else") (if_statement "if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;" (if "if") (parenthesized_expression "((int)fVar13 < (int)fVar12)" (( "(") (binary_expression "(int)fVar13 < (int)fVar12" (cast_expression "(int)fVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar13")) (< "<") (cast_expression "(int)fVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar12"))) () ")")) (goto_statement "goto LAB_001008bf;" (goto "goto") (statement_identifier "LAB_001008bf") (; ";"))))) (if_statement "if (extraout_ECX == 0) {\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }" (if "if") (parenthesized_expression "(extraout_ECX == 0)" (( "(") (binary_expression "extraout_ECX == 0" (identifier "extraout_ECX") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010087d:\n                iVar6 = iVar6 + 1;\n                if (*(int *)(iVar5 + 0x10) <= iVar6) break;\n                goto LAB_00100889;\n              }" ({ "{") (labeled_statement "LAB_0010087d:\n                iVar6 = iVar6 + 1;" (statement_identifier "LAB_0010087d") (: ":") (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (*(int *)(iVar5 + 0x10) <= iVar6) break;" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x10) <= iVar6)" (( "(") (binary_expression "*(int *)(iVar5 + 0x10) <= iVar6" (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (<= "<=") (identifier "iVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_00100889;" (goto "goto") (statement_identifier "LAB_00100889") (; ";")) (} "}"))) (expression_statement "uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);" (assignment_expression "uVar3 = *(uint *)(extraout_ECX + iVar6 * 8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(extraout_ECX + iVar6 * 8)" (* "*") (cast_expression "(uint *)(extraout_ECX + iVar6 * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(extraout_ECX + iVar6 * 8)" (( "(") (binary_expression "extraout_ECX + iVar6 * 8" (identifier "extraout_ECX") (+ "+") (binary_expression "iVar6 * 8" (identifier "iVar6") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);" (assignment_expression "uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(extraout_ECX + 4 + iVar6 * 8)" (* "*") (cast_expression "(uint *)(extraout_ECX + 4 + iVar6 * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(extraout_ECX + 4 + iVar6 * 8)" (( "(") (binary_expression "extraout_ECX + 4 + iVar6 * 8" (binary_expression "extraout_ECX + 4" (identifier "extraout_ECX") (+ "+") (number_literal "4")) (+ "+") (binary_expression "iVar6 * 8" (identifier "iVar6") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18);" (assignment_expression "fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" (identifier "fVar10") (= "=") (cast_expression "(float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18)" (( "(") (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                              uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" (( "(") (binary_expression "uVar3 & 0xff0000" (identifier "uVar3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" (( "(") (binary_expression "uVar3 & 0xff00" (identifier "uVar3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar3 << 0x18" (identifier "uVar3") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18);" (assignment_expression "fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" (identifier "fVar8") (= "=") (cast_expression "(float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18)" (( "(") (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                             uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" (( "(") (binary_expression "uVar4 & 0xff0000" (identifier "uVar4") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" (( "(") (binary_expression "uVar4 & 0xff00" (identifier "uVar4") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if (*(int *)(iVar5 + 0xc) == 0) {\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0xc) == 0" (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;\n                goto LAB_0010087d;\n              }" ({ "{") (if_statement "if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;" (if "if") (parenthesized_expression "((fVar12 < fVar10) || (fVar8 < fVar13))" (( "(") (binary_expression "(fVar12 < fVar10) || (fVar8 < fVar13)" (parenthesized_expression "(fVar12 < fVar10)" (( "(") (binary_expression "fVar12 < fVar10" (identifier "fVar12") (< "<") (identifier "fVar10")) () ")")) (|| "||") (parenthesized_expression "(fVar8 < fVar13)" (( "(") (binary_expression "fVar8 < fVar13" (identifier "fVar8") (< "<") (identifier "fVar13")) () ")"))) () ")")) (goto_statement "goto LAB_00100858;" (goto "goto") (statement_identifier "LAB_00100858") (; ";"))) (goto_statement "goto LAB_0010087d;" (goto "goto") (statement_identifier "LAB_0010087d") (; ";")) (} "}"))) (if_statement "if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }" (if "if") (parenthesized_expression "(((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10))" (( "(") (binary_expression "((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)" (parenthesized_expression "((int)fVar8 < (int)fVar13)" (( "(") (binary_expression "(int)fVar8 < (int)fVar13" (cast_expression "(int)fVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar8")) (< "<") (cast_expression "(int)fVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar13"))) () ")")) (|| "||") (parenthesized_expression "((int)fVar12 < (int)fVar10)" (( "(") (binary_expression "(int)fVar12 < (int)fVar10" (cast_expression "(int)fVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar12")) (< "<") (cast_expression "(int)fVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar10"))) () ")"))) () ")")) (compound_statement "{\nLAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);\n                goto LAB_0010087d;\n              }" ({ "{") (labeled_statement "LAB_00100858:\n                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);" (statement_identifier "LAB_00100858") (: ":") (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2)" (identifier "FUN_000941c0") (argument_list "(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2)" (( "(") (identifier "iVar5") (, ",") (binary_expression "unaff_EDI + 0x30829" (identifier "unaff_EDI") (+ "+") (number_literal "0x30829")) (, ",") (identifier "iVar6") (, ",") (identifier "local_44") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";"))) (goto_statement "goto LAB_0010087d;" (goto "goto") (statement_identifier "LAB_0010087d") (; ";")) (} "}"))) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 < *(int *)(iVar5 + 0x10))" (( "(") (binary_expression "iVar6 < *(int *)(iVar5 + 0x10)" (identifier "iVar6") (< "<") (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (; ";"))) (} "}"))) (if_statement "if (local_38 == 0) {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }\n          else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }" (if "if") (parenthesized_expression "(local_38 == 0)" (( "(") (binary_expression "local_38 == 0" (identifier "local_38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;\n          }" ({ "{") (expression_statement "FUN_000ee110(uVar11,uVar9,param_1,param_2);" (call_expression "FUN_000ee110(uVar11,uVar9,param_1,param_2)" (identifier "FUN_000ee110") (argument_list "(uVar11,uVar9,param_1,param_2)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar9") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "*(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;" (assignment_expression "*(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1" (pointer_expression "*(int *)(iVar5 + 0x20)" (* "*") (cast_expression "(int *)(iVar5 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x20)" (( "(") (binary_expression "iVar5 + 0x20" (identifier "iVar5") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(int *)(iVar5 + 0x20) + 1" (pointer_expression "*(int *)(iVar5 + 0x20)" (* "*") (cast_expression "(int *)(iVar5 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x20)" (( "(") (binary_expression "iVar5 + 0x20" (identifier "iVar5") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }" (else "else") (compound_statement "{\n            FUN_000ee110(uVar11,uVar9,param_1,param_2);\n            FUN_001006b0(uVar11,uVar9);\n            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;\n          }" ({ "{") (expression_statement "FUN_000ee110(uVar11,uVar9,param_1,param_2);" (call_expression "FUN_000ee110(uVar11,uVar9,param_1,param_2)" (identifier "FUN_000ee110") (argument_list "(uVar11,uVar9,param_1,param_2)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar9") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_001006b0(uVar11,uVar9);" (call_expression "FUN_001006b0(uVar11,uVar9)" (identifier "FUN_001006b0") (argument_list "(uVar11,uVar9)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "*(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;" (assignment_expression "*(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1" (pointer_expression "*(int *)(iVar5 + 0x24)" (* "*") (cast_expression "(int *)(iVar5 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x24)" (( "(") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "*(int *)(iVar5 + 0x24) + 1" (pointer_expression "*(int *)(iVar5 + 0x24)" (* "*") (cast_expression "(int *)(iVar5 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x24)" (( "(") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_44 == iVar1) break;" (if "if") (parenthesized_expression "(local_44 == iVar1)" (( "(") (binary_expression "local_44 == iVar1" (identifier "local_44") (== "==") (identifier "iVar1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x10)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar6 = iVar7 + 1;" (assignment_expression "iVar6 = iVar7 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }" (else "else") (compound_statement "{\n      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);\n    }" ({ "{") (expression_statement "FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);" (call_expression "FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n)" (identifier "FUN_000941c0") (argument_list "(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n)" (( "(") (identifier "iVar5") (, ",") (binary_expression "unaff_EDI + 0x307c1" (identifier "unaff_EDI") (+ "+") (number_literal "0x307c1")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "iVar1") (, ",") (identifier "__n") () ")"))) (; ";")) (} "}")))) (} "}")))))) (expression_statement "FUN_00042800();" (call_expression "FUN_00042800()" (identifier "FUN_00042800") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *pCheck,int iDepth,type_2 *aParent,type_3 iNode)

{
  int var_20;
  type_4 *puVar2;
  type_4 var_22;
  type_4 var_24;
  type_1 *pCheck_00;
  int var_8;
  int var_19;
  float var_28;
  void *__src;
  type_5 *var_2;
  int var_17;
  type_4 var_23;
  float var_27;
  type_1 *pCheck_01;
  size_t __n;
  float var_26;
  float var_25;
  int var_4;
  type_6 uVar12;
  type_1 *aParent_00;
  type_7 in_stack_ffffffa4;
  type_7 in_stack_ffffffa8;
  int var_21;
  type_8 *var_13;
  type_4 var_29;
  
  uVar12 = var_1();
  var_29 = (type_4)((type_9)uVar12 >> 0x20);
  pCheck_00 = (type_1 *)uVar12;
  if (pCheck_00->rc != 0) {
    return;
  }
  var_2 = pCheck_00->pGetNode;
  if (var_2 == (type_5 *)0x0) {
    var_2 = var_3(pCheck_00,(char *)(var_4 + 0x3074d),pCheck_00->zDb,pCheck_00->zTab
                             );
    pCheck_00->pGetNode = var_2;
    if (pCheck_00->rc != 0) {
      return;
    }
  }
  var_5(var_2,1,var_6(iDepth,pCheck));
  __n = 0;
  var_8 = var_7(pCheck_00->pGetNode);
  var_13 = (type_8 *)0x0;
  if (var_8 == 100) {
    __n = var_9(pCheck_00->pGetNode,0);
    __src = var_10(pCheck_00->pGetNode,0);
    var_8 = var_11();
    if ((var_8 == 0) &&
       (var_13 = (type_8 *)var_12(var_6(in_stack_ffffffa8,in_stack_ffffffa4)),
       var_13 != (type_8 *)0x0)) {
      var_14(var_13,__src,__n);
    }
    else {
      pCheck_00->rc = 7;
      __n = 0;
      var_13 = (type_8 *)0x0;
    }
  }
  var_8 = var_15(pCheck_00->pGetNode);
  if ((pCheck_00->rc == 0) && (pCheck_00->rc = var_8, var_8 == 0)) {
    if (var_13 == (type_8 *)0x0) {
      var_16(pCheck_00,(char *)(var_4 + 0x3077d),pCheck,iDepth);
      return;
    }
  }
  else if (var_13 == (type_8 *)0x0) {
    return;
  }
  if ((int)__n < 4) {
    var_16(pCheck_00,(char *)(var_4 + 0x3079d),pCheck,iDepth,__n);
  }
  else if ((var_17 == 0) &&
          (var_29 = (type_4)var_18(*var_13,var_13[1]), 0x28 < var_18(*var_13,var_13[1]))
          ) {
    var_16(pCheck_00,(char *)(var_4 + 0x21406),var_29);
  }
  else {
    var_20 = (type_4)(type_10)var_13[2] * 0x100 + (type_4)(type_10)var_13[3];
    var_19 = pCheck_00->nDim;
    var_8 = var_19 + 1;
    if (var_20 * var_8 * 8 + 3 < (int)__n) {
      var_21 = 0;
      if (var_20 != 0) {
        do {
          puVar2 = (type_4 *)(var_13 + var_8 * var_21 * 8 + 4);
          var_23 = *puVar2;
          var_22 = puVar2[1];
          pCheck_01 = (type_1 *)
                      (var_22 >> 0x18 | (var_22 & 0xff0000) >> 8 | (var_22 & 0xff00) << 8 |
                      var_22 << 0x18);
          var_23 = var_23 >> 0x18 | (var_23 & 0xff0000) >> 8 | (var_23 & 0xff00) << 8 | var_23 << 0x18;
          var_8 = 0;
          if (0 < var_19) {
LAB_00100889:
            do {
              var_22 = puVar2[var_8 * 2 + 2];
              var_24 = puVar2[var_8 * 2 + 3];
              var_26 = (float)(var_22 >> 0x18 | (var_22 & 0xff0000) >> 8 | (var_22 & 0xff00) << 8 |
                              var_22 << 0x18);
              var_25 = (float)(var_24 >> 0x18 | (var_24 & 0xff0000) >> 8 | (var_24 & 0xff00) << 8 |
                              var_24 << 0x18);
              if (pCheck_00->bInt == 0) {
                if (var_25 < var_26) {
LAB_001008bf:
                  var_16(pCheck_00,(char *)(var_4 + 0x307f9),var_8,var_21,pCheck,
                                      iDepth);
                }
              }
              else if ((int)var_25 < (int)var_26) goto LAB_001008bf;
              if (var_17 == 0) {
LAB_0010087d:
                var_8 = var_8 + 1;
                if (pCheck_00->nDim <= var_8) break;
                goto LAB_00100889;
              }
              var_22 = *(type_4 *)(var_17 + var_8 * 8);
              var_24 = *(type_4 *)(var_17 + 4 + var_8 * 8);
              var_27 = (float)(var_22 >> 0x18 | (var_22 & 0xff0000) >> 8 | (var_22 & 0xff00) << 8 |
                             var_22 << 0x18);
              var_28 = (float)(var_24 >> 0x18 | (var_24 & 0xff0000) >> 8 | (var_24 & 0xff00) << 8 |
                             var_24 << 0x18);
              if (pCheck_00->bInt == 0) {
                if ((var_26 < var_27) || (var_28 < var_25)) goto LAB_00100858;
                goto LAB_0010087d;
              }
              if (((int)var_28 < (int)var_25) || ((int)var_26 < (int)var_27)) {
LAB_00100858:
                var_16(pCheck_00,(char *)(var_4 + 0x30829),var_8,var_21,pCheck,
                                    iDepth);
                goto LAB_0010087d;
              }
              var_8 = var_8 + 1;
            } while (var_8 < pCheck_00->nDim);
          }
          if (var_29 == 0) {
            var_30(pCheck_00,1,var_6(var_23,pCheck_01),var_6(iDepth,pCheck));
            pCheck_00->nLeaf = pCheck_00->nLeaf + 1;
          }
          else {
            aParent_00 = pCheck;
            var_8 = iDepth;
            var_30(pCheck_00,0,var_6(var_23,pCheck_01),var_6(iDepth,pCheck));
            function_1(pCheck_01,var_23,(type_2 *)aParent_00,var_6(in_stack_ffffffa4,var_8));
            pCheck_00->nNonLeaf = pCheck_00->nNonLeaf + 1;
          }
          var_21 = var_21 + 1;
          if (var_21 == var_20) break;
          var_19 = pCheck_00->nDim;
          var_8 = var_19 + 1;
        } while( true );
      }
    }
    else {
      var_16(pCheck_00,(char *)(var_4 + 0x307c1),pCheck,iDepth,var_20,__n);
    }
  }
  var_31(var_13);
  return;
}


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

void MASKED(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  uint *puVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  float fVar8;
  void *__src;
  int extraout_ECX;
  uint uVar9;
  float fVar10;
  uint uVar11;
  size_t __n;
  float fVar12;
  float fVar13;
  int unaff_EDI;
  undefined8 uVar14;
  int local_44;
  undefined1 *local_40;
  uint local_38;
  
  uVar14 = FUN_00036ac5();
  local_38 = (uint)((ulonglong)uVar14 >> 0x20);
  iVar5 = (int)uVar14;
  if (*(int *)(iVar5 + 0x28) != 0) {
    return;
  }
  iVar6 = *(int *)(iVar5 + 0x14);
  if (iVar6 == 0) {
    iVar6 = FUN_000e3100(iVar5,unaff_EDI + 0x3074d,*(undefined4 *)(iVar5 + 4),
                         *(undefined4 *)(iVar5 + 8));
    *(int *)(iVar5 + 0x14) = iVar6;
    if (*(int *)(iVar5 + 0x28) != 0) {
      return;
    }
  }
  FUN_000739f0(iVar6,1,param_1,param_2);
  __n = 0;
  iVar6 = FUN_000ccd70(*(undefined4 *)(iVar5 + 0x14));
  local_40 = (undefined1 *)0x0;
  if (iVar6 == 100) {
    __n = FUN_0006a300(*(undefined4 *)(iVar5 + 0x14),0);
    __src = (void *)FUN_0006a5f0(*(undefined4 *)(iVar5 + 0x14),0);
    iVar6 = FUN_0005b490();
    if ((iVar6 == 0) && (local_40 = (undefined1 *)FUN_000421f0(), local_40 != (undefined1 *)0x0)) {
      memcpy(local_40,__src,__n);
    }
    else {
      *(undefined4 *)(iVar5 + 0x28) = 7;
      __n = 0;
      local_40 = (undefined1 *)0x0;
    }
  }
  iVar6 = FUN_000ac730(*(undefined4 *)(iVar5 + 0x14));
  if ((*(int *)(iVar5 + 0x28) == 0) && (*(int *)(iVar5 + 0x28) = iVar6, iVar6 == 0)) {
    if (local_40 == (undefined1 *)0x0) {
      FUN_000941c0(iVar5,unaff_EDI + 0x3077d,param_1,param_2);
      return;
    }
  }
  else if (local_40 == (undefined1 *)0x0) {
    return;
  }
  if ((int)__n < 4) {
    FUN_000941c0(iVar5,unaff_EDI + 0x3079d,param_1,param_2,__n);
  }
  else if ((extraout_ECX == 0) &&
          (local_38 = (uint)CONCAT11(*local_40,local_40[1]), 0x28 < CONCAT11(*local_40,local_40[1]))
          ) {
    FUN_000941c0(iVar5,unaff_EDI + 0x21406,local_38);
  }
  else {
    iVar1 = (uint)(byte)local_40[2] * 0x100 + (uint)(byte)local_40[3];
    iVar7 = *(int *)(iVar5 + 0x10);
    iVar6 = iVar7 + 1;
    if (iVar1 * iVar6 * 8 + 3 < (int)__n) {
      local_44 = 0;
      if (iVar1 != 0) {
        do {
          puVar2 = (uint *)(local_40 + iVar6 * local_44 * 8 + 4);
          uVar9 = *puVar2;
          uVar11 = puVar2[1];
          uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |
                   uVar11 << 0x18;
          uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
          iVar6 = 0;
          if (0 < iVar7) {
LAB_00100889:
            do {
              uVar3 = puVar2[iVar6 * 2 + 2];
              uVar4 = puVar2[iVar6 * 2 + 3];
              fVar12 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                              uVar3 << 0x18);
              fVar13 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |
                              uVar4 << 0x18);
              if (*(int *)(iVar5 + 0xc) == 0) {
                if (fVar13 < fVar12) {
LAB_001008bf:
                  FUN_000941c0(iVar5,unaff_EDI + 0x307f9,iVar6,local_44,param_1,param_2);
                }
              }
              else if ((int)fVar13 < (int)fVar12) goto LAB_001008bf;
              if (extraout_ECX == 0) {
LAB_0010087d:
                iVar6 = iVar6 + 1;
                if (*(int *)(iVar5 + 0x10) <= iVar6) break;
                goto LAB_00100889;
              }
              uVar3 = *(uint *)(extraout_ECX + iVar6 * 8);
              uVar4 = *(uint *)(extraout_ECX + 4 + iVar6 * 8);
              fVar10 = (float)(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                              uVar3 << 0x18);
              fVar8 = (float)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |
                             uVar4 << 0x18);
              if (*(int *)(iVar5 + 0xc) == 0) {
                if ((fVar12 < fVar10) || (fVar8 < fVar13)) goto LAB_00100858;
                goto LAB_0010087d;
              }
              if (((int)fVar8 < (int)fVar13) || ((int)fVar12 < (int)fVar10)) {
LAB_00100858:
                FUN_000941c0(iVar5,unaff_EDI + 0x30829,iVar6,local_44,param_1,param_2);
                goto LAB_0010087d;
              }
              iVar6 = iVar6 + 1;
            } while (iVar6 < *(int *)(iVar5 + 0x10));
          }
          if (local_38 == 0) {
            FUN_000ee110(uVar11,uVar9,param_1,param_2);
            *(int *)(iVar5 + 0x20) = *(int *)(iVar5 + 0x20) + 1;
          }
          else {
            FUN_000ee110(uVar11,uVar9,param_1,param_2);
            MASKED(uVar11,uVar9);
            *(int *)(iVar5 + 0x24) = *(int *)(iVar5 + 0x24) + 1;
          }
          local_44 = local_44 + 1;
          if (local_44 == iVar1) break;
          iVar7 = *(int *)(iVar5 + 0x10);
          iVar6 = iVar7 + 1;
        } while( true );
      }
    }
    else {
      FUN_000941c0(iVar5,unaff_EDI + 0x307c1,param_1,param_2,iVar1,__n);
    }
  }
  FUN_00042800();
  return;
}

