
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void resizeline(Terminal *term,termline *line,int cols)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  termchar *ptVar4;
  int *piVar5;
  termchar *ptVar6;
  termchar *ptVar7;
  int extraout_ECX;
  size_t sVar8;
  termline *line_00;
  int iVar9;
  int iVar10;
  int iVar11;
  undefined8 uVar12;
  
  uVar12 = __x86_get_pc_thunk_di();
  line_00 = (termline *)((ulonglong)uVar12 >> 0x20);
  iVar3 = (int)uVar12;
  iVar2 = line_00->cols;
  if (iVar2 != extraout_ECX) {
    iVar10 = extraout_ECX - iVar2;
    iVar9 = extraout_ECX;
    if (extraout_ECX < iVar2) {
      do {
        iVar11 = iVar9 + 1;
        clear_cc(line_00,iVar9);
        iVar9 = iVar11;
      } while (iVar2 != iVar11);
      memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,
              (line_00->size - line_00->cols) * 0xc);
      sVar8 = iVar10 + line_00->size;
      line_00->size = sVar8;
      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);
      line_00->chars = ptVar4;
      line_00->cols = extraout_ECX;
    }
    else {
      sVar8 = iVar10 + line_00->size;
      line_00->size = sVar8;
      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);
      line_00->chars = ptVar4;
      line_00->cols = extraout_ECX;
      if (iVar2 < extraout_ECX) {
        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);
      }
    }
    iVar9 = extraout_ECX;
    if (iVar2 <= extraout_ECX) {
      iVar9 = iVar2;
    }
    if (0 < iVar9) {
      piVar5 = &line_00->chars->cc_next;
      piVar1 = piVar5 + iVar9 * 3;
      do {
        if (*piVar5 != 0) {
          *piVar5 = *piVar5 + iVar10;
        }
        piVar5 = piVar5 + 3;
      } while (piVar5 != piVar1);
    }
    if (line_00->cc_free != 0) {
      line_00->cc_free = line_00->cc_free + iVar10;
    }
    if (iVar2 < extraout_ECX) {
      ptVar4 = line_00->chars;
      ptVar6 = ptVar4 + iVar2;
      do {
        ptVar7 = ptVar6 + 1;
        ptVar6->chr = *(ulong *)(iVar3 + 0x48);
        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);
        ptVar6->cc_next = *(int *)(iVar3 + 0x50);
        ptVar6 = ptVar7;
      } while (ptVar7 != ptVar4 + extraout_ECX);
    }
  }
  return;
}



void FUN_00032080(void)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  int *piVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  int extraout_ECX;
  int iVar8;
  int iVar9;
  int iVar10;
  undefined8 uVar11;
  
  uVar11 = FUN_0003f055();
  iVar8 = (int)((ulonglong)uVar11 >> 0x20);
  iVar3 = (int)uVar11;
  iVar2 = *(int *)(iVar8 + 4);
  if (iVar2 != extraout_ECX) {
    iVar9 = extraout_ECX - iVar2;
    iVar10 = extraout_ECX;
    if (extraout_ECX < iVar2) {
      do {
        iVar10 = iVar10 + 1;
        FUN_00032000();
      } while (iVar2 != iVar10);
      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),
              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),
              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);
      iVar10 = iVar9 + *(int *)(iVar8 + 8);
      *(int *)(iVar8 + 8) = iVar10;
      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);
      *(undefined4 *)(iVar8 + 0x14) = uVar4;
      *(int *)(iVar8 + 4) = extraout_ECX;
    }
    else {
      iVar10 = iVar9 + *(int *)(iVar8 + 8);
      *(int *)(iVar8 + 8) = iVar10;
      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);
      *(int *)(iVar8 + 0x14) = iVar10;
      *(int *)(iVar8 + 4) = extraout_ECX;
      if (iVar2 < extraout_ECX) {
        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),
                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);
      }
    }
    iVar10 = extraout_ECX;
    if (iVar2 <= extraout_ECX) {
      iVar10 = iVar2;
    }
    if (0 < iVar10) {
      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);
      piVar1 = piVar5 + iVar10 * 3;
      do {
        if (*piVar5 != 0) {
          *piVar5 = *piVar5 + iVar9;
        }
        piVar5 = piVar5 + 3;
      } while (piVar5 != piVar1);
    }
    if (*(int *)(iVar8 + 0x10) != 0) {
      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;
    }
    if (iVar2 < extraout_ECX) {
      iVar8 = *(int *)(iVar8 + 0x14);
      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);
      do {
        puVar7 = puVar6 + 3;
        *puVar6 = *(undefined4 *)(iVar3 + 0x48);
        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);
        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);
        puVar6 = puVar7;
      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));
    }
  }
  return;
}


PUSH EBP
PUSH EDI
CALL 0x0003f055
ADD EDI,0x6f75d
PUSH ESI
PUSH EBX
SUB ESP,0x1c
MOV dword ptr [ESP + 0xc],EDI
MOV EDI,dword ptr [EDX + 0x4]
CMP EDI,ECX
JZ 0x000321a9
MOV EBX,ECX
MOV dword ptr [ESP + 0x4],ECX
MOV ESI,EDX
MOV EBP,EAX
SUB EBX,EDI
MOV dword ptr [ESP + 0x8],EBX
MOV EBX,ECX
CMP EDI,ECX
JLE 0x000321b8
LEA ESI,[ESI]
NOP
MOV EDX,EBX
MOV EAX,ESI
ADD EBX,0x1
CALL 0x00032000
CMP EDI,EBX
JNZ 0x000320c0
MOV EAX,dword ptr [ESI + 0x8]
SUB EAX,dword ptr [ESI + 0x4]
SUB ESP,0x4
LEA EAX,[EAX + EAX*0x2]
MOV EDX,dword ptr [ESI + 0x14]
SHL EAX,0x2
PUSH EAX
LEA EAX,[EDI + EDI*0x2]
LEA EAX,[EDX + EAX*0x4]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x10]
LEA EAX,[EAX + EAX*0x2]
LEA EAX,[EDX + EAX*0x4]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00019c70
MOV ECX,dword ptr [ESP + 0x18]
ADD ESP,0xc
ADD ECX,dword ptr [ESI + 0x8]
MOV dword ptr [ESI + 0x8],ECX
PUSH 0xc
PUSH ECX
PUSH dword ptr [ESI + 0x14]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x0002c210
MOV dword ptr [ESI + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x14]
ADD ESP,0x10
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x4]
CMP EDI,EAX
MOV EDX,EAX
CMOVLE EDX,EDI
TEST EDX,EDX
JLE 0x00032161
MOV EAX,dword ptr [ESI + 0x14]
LEA EDX,[EDX + EDX*0x2]
MOV ECX,dword ptr [ESP + 0x8]
ADD EAX,0x8
LEA EBX,[EAX + EDX*0x4]
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x0003215a
ADD EDX,ECX
MOV dword ptr [EAX],EDX
ADD EAX,0xc
CMP EAX,EBX
JNZ 0x00032150
MOV EAX,dword ptr [ESI + 0x10]
TEST EAX,EAX
JZ 0x0003216f
ADD EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESI + 0x10],EAX
MOV ECX,dword ptr [ESP + 0x4]
CMP EDI,ECX
JGE 0x000321a9
MOV EDX,dword ptr [ESI + 0x14]
LEA EAX,[EDI + EDI*0x2]
LEA EBX,[ECX + ECX*0x2]
LEA EAX,[EDX + EAX*0x4]
LEA EBX,[EDX + EBX*0x4]
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EDX,dword ptr [EBP + 0x48]
ADD EAX,0xc
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [EBP + 0x4c]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [EBP + 0x50]
MOV dword ptr [EAX + -0x4],EDX
CMP EAX,EBX
JNZ 0x00032190
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x8]
SUB ESP,0x4
ADD EAX,dword ptr [EDX + 0x8]
MOV dword ptr [EDX + 0x8],EAX
PUSH 0xc
PUSH EAX
PUSH dword ptr [EDX + 0x14]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x0002c210
MOV ECX,dword ptr [ESP + 0x14]
ADD ESP,0x10
MOV dword ptr [ESI + 0x14],EAX
MOV dword ptr [ESI + 0x4],ECX
CMP EDI,ECX
JGE 0x00032127
MOV EDX,dword ptr [ESI + 0x8]
SUB ESP,0x4
SUB EDX,ECX
LEA EDX,[EDX + EDX*0x2]
SHL EDX,0x2
PUSH EDX
LEA EDX,[EDI + EDI*0x2]
LEA EDX,[EAX + EDX*0x4]
PUSH EDX
LEA EDX,[ECX + ECX*0x2]
LEA EAX,[EAX + EDX*0x4]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00019c70
ADD ESP,0x10
JMP 0x00032127
(translation_unit "void FUN_00032080(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined8 uVar11;\n  \n  uVar11 = FUN_0003f055();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar3 = (int)uVar11;\n  iVar2 = *(int *)(iVar8 + 4);\n  if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00032080(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined8 uVar11;\n  \n  uVar11 = FUN_0003f055();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar3 = (int)uVar11;\n  iVar2 = *(int *)(iVar8 + 4);\n  if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00032080(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined8 uVar11;\n  \n  uVar11 = FUN_0003f055();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar3 = (int)uVar11;\n  iVar2 = *(int *)(iVar8 + 4);\n  if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (expression_statement "uVar11 = FUN_0003f055();" (assignment_expression "uVar11 = FUN_0003f055()" identifier = (call_expression "FUN_0003f055()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar8 = (int)((ulonglong)uVar11 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar3 = (int)uVar11;" (assignment_expression "iVar3 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar2 = *(int *)(iVar8 + 4);" (assignment_expression "iVar2 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }" if (parenthesized_expression "(iVar2 != extraout_ECX)" ( (binary_expression "iVar2 != extraout_ECX" identifier != identifier) )) (compound_statement "{\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }" { (expression_statement "iVar9 = extraout_ECX - iVar2;" (assignment_expression "iVar9 = extraout_ECX - iVar2" identifier = (binary_expression "extraout_ECX - iVar2" identifier - identifier)) ;) (expression_statement "iVar10 = extraout_ECX;" (assignment_expression "iVar10 = extraout_ECX" identifier = identifier) ;) (if_statement "if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }" if (parenthesized_expression "(extraout_ECX < iVar2)" ( (binary_expression "extraout_ECX < iVar2" identifier < identifier) )) (compound_statement "{\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }" { (do_statement "do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);" do (compound_statement "{\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00032000();" (call_expression "FUN_00032000()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(iVar2 != iVar10)" ( (binary_expression "iVar2 != iVar10" identifier != identifier) )) ;) (expression_statement "memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);" (call_expression "memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc)" identifier (argument_list "((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc)" ( (cast_expression "(void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc)" ( (binary_expression "*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) + (binary_expression "extraout_ECX * 0xc" identifier * number_literal)) ))) , (cast_expression "(void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x14) + iVar2 * 0xc)" ( (binary_expression "*(int *)(iVar8 + 0x14) + iVar2 * 0xc" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) + (binary_expression "iVar2 * 0xc" identifier * number_literal)) ))) , (binary_expression "(*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc" (parenthesized_expression "(*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4))" ( (binary_expression "*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) )) * number_literal) ))) ;) (expression_statement "iVar10 = iVar9 + *(int *)(iVar8 + 8);" (assignment_expression "iVar10 = iVar9 + *(int *)(iVar8 + 8)" identifier = (binary_expression "iVar9 + *(int *)(iVar8 + 8)" identifier + (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar8 + 8) = iVar10;" (assignment_expression "*(int *)(iVar8 + 8) = iVar10" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);" (assignment_expression "uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" identifier = (call_expression "FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" identifier (argument_list "(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = uVar4;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = uVar4" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar8 + 4) = extraout_ECX;" (assignment_expression "*(int *)(iVar8 + 4) = extraout_ECX" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }" else (compound_statement "{\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }" { (expression_statement "iVar10 = iVar9 + *(int *)(iVar8 + 8);" (assignment_expression "iVar10 = iVar9 + *(int *)(iVar8 + 8)" identifier = (binary_expression "iVar9 + *(int *)(iVar8 + 8)" identifier + (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar8 + 8) = iVar10;" (assignment_expression "*(int *)(iVar8 + 8) = iVar10" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);" (assignment_expression "iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" identifier = (call_expression "FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" identifier (argument_list "(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) , identifier , number_literal )))) ;) (expression_statement "*(int *)(iVar8 + 0x14) = iVar10;" (assignment_expression "*(int *)(iVar8 + 0x14) = iVar10" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar8 + 4) = extraout_ECX;" (assignment_expression "*(int *)(iVar8 + 4) = extraout_ECX" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }" if (parenthesized_expression "(iVar2 < extraout_ECX)" ( (binary_expression "iVar2 < extraout_ECX" identifier < identifier) )) (compound_statement "{\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }" { (expression_statement "memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);" (call_expression "memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc)" identifier (argument_list "((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc)" ( (cast_expression "(void *)(iVar10 + extraout_ECX * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + extraout_ECX * 0xc)" ( (binary_expression "iVar10 + extraout_ECX * 0xc" identifier + (binary_expression "extraout_ECX * 0xc" identifier * number_literal)) ))) , (cast_expression "(void *)(iVar10 + iVar2 * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar2 * 0xc)" ( (binary_expression "iVar10 + iVar2 * 0xc" identifier + (binary_expression "iVar2 * 0xc" identifier * number_literal)) ))) , (binary_expression "(*(int *)(iVar8 + 8) - extraout_ECX) * 0xc" (parenthesized_expression "(*(int *)(iVar8 + 8) - extraout_ECX)" ( (binary_expression "*(int *)(iVar8 + 8) - extraout_ECX" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) - identifier) )) * number_literal) ))) ;) })) }))) (expression_statement "iVar10 = extraout_ECX;" (assignment_expression "iVar10 = extraout_ECX" identifier = identifier) ;) (if_statement "if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }" if (parenthesized_expression "(iVar2 <= extraout_ECX)" ( (binary_expression "iVar2 <= extraout_ECX" identifier <= identifier) )) (compound_statement "{\n      iVar10 = iVar2;\n    }" { (expression_statement "iVar10 = iVar2;" (assignment_expression "iVar10 = iVar2" identifier = identifier) ;) })) (if_statement "if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }" { (expression_statement "piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8)" identifier = (cast_expression "(int *)(*(int *)(iVar8 + 0x14) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x14) + 8)" ( (binary_expression "*(int *)(iVar8 + 0x14) + 8" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar1 = piVar5 + iVar10 * 3;" (assignment_expression "piVar1 = piVar5 + iVar10 * 3" identifier = (binary_expression "piVar5 + iVar10 * 3" identifier + (binary_expression "iVar10 * 3" identifier * number_literal))) ;) (do_statement "do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);" do (compound_statement "{\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      }" { (if_statement "if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }" if (parenthesized_expression "(*piVar5 != 0)" ( (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal) )) (compound_statement "{\n          *piVar5 = *piVar5 + iVar9;\n        }" { (expression_statement "*piVar5 = *piVar5 + iVar9;" (assignment_expression "*piVar5 = *piVar5 + iVar9" (pointer_expression "*piVar5" * identifier) = (binary_expression "*piVar5 + iVar9" (pointer_expression "*piVar5" * identifier) + identifier)) ;) })) (expression_statement "piVar5 = piVar5 + 3;" (assignment_expression "piVar5 = piVar5 + 3" identifier = (binary_expression "piVar5 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar5 != piVar1)" ( (binary_expression "piVar5 != piVar1" identifier != identifier) )) ;) })) (if_statement "if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }" if (parenthesized_expression "(*(int *)(iVar8 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x10) != 0" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }" { (expression_statement "*(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;" (assignment_expression "*(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar8 + 0x10) + iVar9" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) + identifier)) ;) })) (if_statement "if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }" if (parenthesized_expression "(iVar2 < extraout_ECX)" ( (binary_expression "iVar2 < extraout_ECX" identifier < identifier) )) (compound_statement "{\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }" { (expression_statement "iVar8 = *(int *)(iVar8 + 0x14);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x14)" identifier = (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);" (assignment_expression "puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar8 + iVar2 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar2 * 0xc)" ( (binary_expression "iVar8 + iVar2 * 0xc" identifier + (binary_expression "iVar2 * 0xc" identifier * number_literal)) )))) ;) (do_statement "do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));" do (compound_statement "{\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      }" { (expression_statement "puVar7 = puVar6 + 3;" (assignment_expression "puVar7 = puVar6 + 3" identifier = (binary_expression "puVar6 + 3" identifier + number_literal)) ;) (expression_statement "*puVar6 = *(undefined4 *)(iVar3 + 0x48);" (assignment_expression "*puVar6 = *(undefined4 *)(iVar3 + 0x48)" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*(undefined4 *)(iVar3 + 0x48)" * (cast_expression "(undefined4 *)(iVar3 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);" (assignment_expression "puVar6[1] = *(undefined4 *)(iVar3 + 0x4c)" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar3 + 0x4c)" * (cast_expression "(undefined4 *)(iVar3 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4c)" ( (binary_expression "iVar3 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "puVar6[2] = *(undefined4 *)(iVar3 + 0x50);" (assignment_expression "puVar6[2] = *(undefined4 *)(iVar3 + 0x50)" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar3 + 0x50)" * (cast_expression "(undefined4 *)(iVar3 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x50)" ( (binary_expression "iVar3 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc))" ( (binary_expression "puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc)" identifier != (cast_expression "(undefined4 *)(iVar8 + extraout_ECX * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + extraout_ECX * 0xc)" ( (binary_expression "iVar8 + extraout_ECX * 0xc" identifier + (binary_expression "extraout_ECX * 0xc" identifier * number_literal)) )))) )) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid resizeline(Terminal *term,termline *line,int cols)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  termchar *ptVar4;\n  int *piVar5;\n  termchar *ptVar6;\n  termchar *ptVar7;\n  int extraout_ECX;\n  size_t sVar8;\n  termline *line_00;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  \n  uVar12 = __x86_get_pc_thunk_di();\n  line_00 = (termline *)((ulonglong)uVar12 >> 0x20);\n  iVar3 = (int)uVar12;\n  iVar2 = line_00->cols;\n  if (iVar2 != extraout_ECX) {\n    iVar10 = extraout_ECX - iVar2;\n    iVar9 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar11 = iVar9 + 1;\n        clear_cc(line_00,iVar9);\n        iVar9 = iVar11;\n      } while (iVar2 != iVar11);\n      memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc);\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n    }\n    else {\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }\n    }\n    iVar9 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar9 = iVar2;\n    }\n    if (0 < iVar9) {\n      piVar5 = &line_00->chars->cc_next;\n      piVar1 = piVar5 + iVar9 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (line_00->cc_free != 0) {\n      line_00->cc_free = line_00->cc_free + iVar10;\n    }\n    if (iVar2 < extraout_ECX) {\n      ptVar4 = line_00->chars;\n      ptVar6 = ptVar4 + iVar2;\n      do {\n        ptVar7 = ptVar6 + 1;\n        ptVar6->chr = *(ulong *)(iVar3 + 0x48);\n        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);\n        ptVar6->cc_next = *(int *)(iVar3 + 0x50);\n        ptVar6 = ptVar7;\n      } while (ptVar7 != ptVar4 + extraout_ECX);\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void resizeline(Terminal *term,termline *line,int cols)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  termchar *ptVar4;\n  int *piVar5;\n  termchar *ptVar6;\n  termchar *ptVar7;\n  int extraout_ECX;\n  size_t sVar8;\n  termline *line_00;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  \n  uVar12 = __x86_get_pc_thunk_di();\n  line_00 = (termline *)((ulonglong)uVar12 >> 0x20);\n  iVar3 = (int)uVar12;\n  iVar2 = line_00->cols;\n  if (iVar2 != extraout_ECX) {\n    iVar10 = extraout_ECX - iVar2;\n    iVar9 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar11 = iVar9 + 1;\n        clear_cc(line_00,iVar9);\n        iVar9 = iVar11;\n      } while (iVar2 != iVar11);\n      memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc);\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n    }\n    else {\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }\n    }\n    iVar9 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar9 = iVar2;\n    }\n    if (0 < iVar9) {\n      piVar5 = &line_00->chars->cc_next;\n      piVar1 = piVar5 + iVar9 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (line_00->cc_free != 0) {\n      line_00->cc_free = line_00->cc_free + iVar10;\n    }\n    if (iVar2 < extraout_ECX) {\n      ptVar4 = line_00->chars;\n      ptVar6 = ptVar4 + iVar2;\n      do {\n        ptVar7 = ptVar6 + 1;\n        ptVar6->chr = *(ulong *)(iVar3 + 0x48);\n        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);\n        ptVar6->cc_next = *(int *)(iVar3 + 0x50);\n        ptVar6 = ptVar7;\n      } while (ptVar7 != ptVar4 + extraout_ECX);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "resizeline(Terminal *term,termline *line,int cols)" identifier (parameter_list "(Terminal *term,termline *line,int cols)" ( (parameter_declaration "Terminal *term" type_identifier (pointer_declarator "*term" * identifier)) , (parameter_declaration "termline *line" type_identifier (pointer_declarator "*line" * identifier)) , (parameter_declaration "int cols" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  termchar *ptVar4;\n  int *piVar5;\n  termchar *ptVar6;\n  termchar *ptVar7;\n  int extraout_ECX;\n  size_t sVar8;\n  termline *line_00;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  \n  uVar12 = __x86_get_pc_thunk_di();\n  line_00 = (termline *)((ulonglong)uVar12 >> 0x20);\n  iVar3 = (int)uVar12;\n  iVar2 = line_00->cols;\n  if (iVar2 != extraout_ECX) {\n    iVar10 = extraout_ECX - iVar2;\n    iVar9 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar11 = iVar9 + 1;\n        clear_cc(line_00,iVar9);\n        iVar9 = iVar11;\n      } while (iVar2 != iVar11);\n      memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc);\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n    }\n    else {\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }\n    }\n    iVar9 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar9 = iVar2;\n    }\n    if (0 < iVar9) {\n      piVar5 = &line_00->chars->cc_next;\n      piVar1 = piVar5 + iVar9 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (line_00->cc_free != 0) {\n      line_00->cc_free = line_00->cc_free + iVar10;\n    }\n    if (iVar2 < extraout_ECX) {\n      ptVar4 = line_00->chars;\n      ptVar6 = ptVar4 + iVar2;\n      do {\n        ptVar7 = ptVar6 + 1;\n        ptVar6->chr = *(ulong *)(iVar3 + 0x48);\n        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);\n        ptVar6->cc_next = *(int *)(iVar3 + 0x50);\n        ptVar6 = ptVar7;\n      } while (ptVar7 != ptVar4 + extraout_ECX);\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "termchar *ptVar4;" type_identifier (pointer_declarator "*ptVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "termchar *ptVar6;" type_identifier (pointer_declarator "*ptVar6" * identifier) ;) (declaration "termchar *ptVar7;" type_identifier (pointer_declarator "*ptVar7" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "termline *line_00;" type_identifier (pointer_declarator "*line_00" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined8 uVar12;" 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 "line_00 = (termline *)((ulonglong)uVar12 >> 0x20);" (assignment_expression "line_00 = (termline *)((ulonglong)uVar12 >> 0x20)" identifier = (cast_expression "(termline *)((ulonglong)uVar12 >> 0x20)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar12 >> 0x20)" ( (binary_expression "(ulonglong)uVar12 >> 0x20" (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar3 = (int)uVar12;" (assignment_expression "iVar3 = (int)uVar12" identifier = (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar2 = line_00->cols;" (assignment_expression "iVar2 = line_00->cols" identifier = (field_expression "line_00->cols" identifier -> field_identifier)) ;) (if_statement "if (iVar2 != extraout_ECX) {\n    iVar10 = extraout_ECX - iVar2;\n    iVar9 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar11 = iVar9 + 1;\n        clear_cc(line_00,iVar9);\n        iVar9 = iVar11;\n      } while (iVar2 != iVar11);\n      memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc);\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n    }\n    else {\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }\n    }\n    iVar9 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar9 = iVar2;\n    }\n    if (0 < iVar9) {\n      piVar5 = &line_00->chars->cc_next;\n      piVar1 = piVar5 + iVar9 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (line_00->cc_free != 0) {\n      line_00->cc_free = line_00->cc_free + iVar10;\n    }\n    if (iVar2 < extraout_ECX) {\n      ptVar4 = line_00->chars;\n      ptVar6 = ptVar4 + iVar2;\n      do {\n        ptVar7 = ptVar6 + 1;\n        ptVar6->chr = *(ulong *)(iVar3 + 0x48);\n        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);\n        ptVar6->cc_next = *(int *)(iVar3 + 0x50);\n        ptVar6 = ptVar7;\n      } while (ptVar7 != ptVar4 + extraout_ECX);\n    }\n  }" if (parenthesized_expression "(iVar2 != extraout_ECX)" ( (binary_expression "iVar2 != extraout_ECX" identifier != identifier) )) (compound_statement "{\n    iVar10 = extraout_ECX - iVar2;\n    iVar9 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar11 = iVar9 + 1;\n        clear_cc(line_00,iVar9);\n        iVar9 = iVar11;\n      } while (iVar2 != iVar11);\n      memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc);\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n    }\n    else {\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }\n    }\n    iVar9 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar9 = iVar2;\n    }\n    if (0 < iVar9) {\n      piVar5 = &line_00->chars->cc_next;\n      piVar1 = piVar5 + iVar9 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (line_00->cc_free != 0) {\n      line_00->cc_free = line_00->cc_free + iVar10;\n    }\n    if (iVar2 < extraout_ECX) {\n      ptVar4 = line_00->chars;\n      ptVar6 = ptVar4 + iVar2;\n      do {\n        ptVar7 = ptVar6 + 1;\n        ptVar6->chr = *(ulong *)(iVar3 + 0x48);\n        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);\n        ptVar6->cc_next = *(int *)(iVar3 + 0x50);\n        ptVar6 = ptVar7;\n      } while (ptVar7 != ptVar4 + extraout_ECX);\n    }\n  }" { (expression_statement "iVar10 = extraout_ECX - iVar2;" (assignment_expression "iVar10 = extraout_ECX - iVar2" identifier = (binary_expression "extraout_ECX - iVar2" identifier - identifier)) ;) (expression_statement "iVar9 = extraout_ECX;" (assignment_expression "iVar9 = extraout_ECX" identifier = identifier) ;) (if_statement "if (extraout_ECX < iVar2) {\n      do {\n        iVar11 = iVar9 + 1;\n        clear_cc(line_00,iVar9);\n        iVar9 = iVar11;\n      } while (iVar2 != iVar11);\n      memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc);\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n    }\n    else {\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }\n    }" if (parenthesized_expression "(extraout_ECX < iVar2)" ( (binary_expression "extraout_ECX < iVar2" identifier < identifier) )) (compound_statement "{\n      do {\n        iVar11 = iVar9 + 1;\n        clear_cc(line_00,iVar9);\n        iVar9 = iVar11;\n      } while (iVar2 != iVar11);\n      memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc);\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n    }" { (do_statement "do {\n        iVar11 = iVar9 + 1;\n        clear_cc(line_00,iVar9);\n        iVar9 = iVar11;\n      } while (iVar2 != iVar11);" do (compound_statement "{\n        iVar11 = iVar9 + 1;\n        clear_cc(line_00,iVar9);\n        iVar9 = iVar11;\n      }" { (expression_statement "iVar11 = iVar9 + 1;" (assignment_expression "iVar11 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "clear_cc(line_00,iVar9);" (call_expression "clear_cc(line_00,iVar9)" identifier (argument_list "(line_00,iVar9)" ( identifier , identifier ))) ;) (expression_statement "iVar9 = iVar11;" (assignment_expression "iVar9 = iVar11" identifier = identifier) ;) }) while (parenthesized_expression "(iVar2 != iVar11)" ( (binary_expression "iVar2 != iVar11" identifier != identifier) )) ;) (expression_statement "memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc);" (call_expression "memmove(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc)" identifier (argument_list "(line_00->chars + extraout_ECX,line_00->chars + iVar2,\n              (line_00->size - line_00->cols) * 0xc)" ( (binary_expression "line_00->chars + extraout_ECX" (field_expression "line_00->chars" identifier -> field_identifier) + identifier) , (binary_expression "line_00->chars + iVar2" (field_expression "line_00->chars" identifier -> field_identifier) + identifier) , (binary_expression "(line_00->size - line_00->cols) * 0xc" (parenthesized_expression "(line_00->size - line_00->cols)" ( (binary_expression "line_00->size - line_00->cols" (field_expression "line_00->size" identifier -> field_identifier) - (field_expression "line_00->cols" identifier -> field_identifier)) )) * number_literal) ))) ;) (expression_statement "sVar8 = iVar10 + line_00->size;" (assignment_expression "sVar8 = iVar10 + line_00->size" identifier = (binary_expression "iVar10 + line_00->size" identifier + (field_expression "line_00->size" identifier -> field_identifier))) ;) (expression_statement "line_00->size = sVar8;" (assignment_expression "line_00->size = sVar8" (field_expression "line_00->size" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);" (assignment_expression "ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc)" identifier = (cast_expression "(termchar *)saferealloc(line_00->chars,sVar8,0xc)" ( (type_descriptor "termchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(line_00->chars,sVar8,0xc)" identifier (argument_list "(line_00->chars,sVar8,0xc)" ( (field_expression "line_00->chars" identifier -> field_identifier) , identifier , number_literal ))))) ;) (expression_statement "line_00->chars = ptVar4;" (assignment_expression "line_00->chars = ptVar4" (field_expression "line_00->chars" identifier -> field_identifier) = identifier) ;) (expression_statement "line_00->cols = extraout_ECX;" (assignment_expression "line_00->cols = extraout_ECX" (field_expression "line_00->cols" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }\n    }" else (compound_statement "{\n      sVar8 = iVar10 + line_00->size;\n      line_00->size = sVar8;\n      ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);\n      line_00->chars = ptVar4;\n      line_00->cols = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }\n    }" { (expression_statement "sVar8 = iVar10 + line_00->size;" (assignment_expression "sVar8 = iVar10 + line_00->size" identifier = (binary_expression "iVar10 + line_00->size" identifier + (field_expression "line_00->size" identifier -> field_identifier))) ;) (expression_statement "line_00->size = sVar8;" (assignment_expression "line_00->size = sVar8" (field_expression "line_00->size" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc);" (assignment_expression "ptVar4 = (termchar *)saferealloc(line_00->chars,sVar8,0xc)" identifier = (cast_expression "(termchar *)saferealloc(line_00->chars,sVar8,0xc)" ( (type_descriptor "termchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(line_00->chars,sVar8,0xc)" identifier (argument_list "(line_00->chars,sVar8,0xc)" ( (field_expression "line_00->chars" identifier -> field_identifier) , identifier , number_literal ))))) ;) (expression_statement "line_00->chars = ptVar4;" (assignment_expression "line_00->chars = ptVar4" (field_expression "line_00->chars" identifier -> field_identifier) = identifier) ;) (expression_statement "line_00->cols = extraout_ECX;" (assignment_expression "line_00->cols = extraout_ECX" (field_expression "line_00->cols" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar2 < extraout_ECX) {\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }" if (parenthesized_expression "(iVar2 < extraout_ECX)" ( (binary_expression "iVar2 < extraout_ECX" identifier < identifier) )) (compound_statement "{\n        memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);\n      }" { (expression_statement "memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc);" (call_expression "memmove(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc)" identifier (argument_list "(ptVar4 + extraout_ECX,ptVar4 + iVar2,(line_00->size - extraout_ECX) * 0xc)" ( (binary_expression "ptVar4 + extraout_ECX" identifier + identifier) , (binary_expression "ptVar4 + iVar2" identifier + identifier) , (binary_expression "(line_00->size - extraout_ECX) * 0xc" (parenthesized_expression "(line_00->size - extraout_ECX)" ( (binary_expression "line_00->size - extraout_ECX" (field_expression "line_00->size" identifier -> field_identifier) - identifier) )) * number_literal) ))) ;) })) }))) (expression_statement "iVar9 = extraout_ECX;" (assignment_expression "iVar9 = extraout_ECX" identifier = identifier) ;) (if_statement "if (iVar2 <= extraout_ECX) {\n      iVar9 = iVar2;\n    }" if (parenthesized_expression "(iVar2 <= extraout_ECX)" ( (binary_expression "iVar2 <= extraout_ECX" identifier <= identifier) )) (compound_statement "{\n      iVar9 = iVar2;\n    }" { (expression_statement "iVar9 = iVar2;" (assignment_expression "iVar9 = iVar2" identifier = identifier) ;) })) (if_statement "if (0 < iVar9) {\n      piVar5 = &line_00->chars->cc_next;\n      piVar1 = piVar5 + iVar9 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }" if (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) (compound_statement "{\n      piVar5 = &line_00->chars->cc_next;\n      piVar1 = piVar5 + iVar9 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }" { (expression_statement "piVar5 = &line_00->chars->cc_next;" (assignment_expression "piVar5 = &line_00->chars->cc_next" identifier = (pointer_expression "&line_00->chars->cc_next" & (field_expression "line_00->chars->cc_next" (field_expression "line_00->chars" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "piVar1 = piVar5 + iVar9 * 3;" (assignment_expression "piVar1 = piVar5 + iVar9 * 3" identifier = (binary_expression "piVar5 + iVar9 * 3" identifier + (binary_expression "iVar9 * 3" identifier * number_literal))) ;) (do_statement "do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);" do (compound_statement "{\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }\n        piVar5 = piVar5 + 3;\n      }" { (if_statement "if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar10;\n        }" if (parenthesized_expression "(*piVar5 != 0)" ( (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal) )) (compound_statement "{\n          *piVar5 = *piVar5 + iVar10;\n        }" { (expression_statement "*piVar5 = *piVar5 + iVar10;" (assignment_expression "*piVar5 = *piVar5 + iVar10" (pointer_expression "*piVar5" * identifier) = (binary_expression "*piVar5 + iVar10" (pointer_expression "*piVar5" * identifier) + identifier)) ;) })) (expression_statement "piVar5 = piVar5 + 3;" (assignment_expression "piVar5 = piVar5 + 3" identifier = (binary_expression "piVar5 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar5 != piVar1)" ( (binary_expression "piVar5 != piVar1" identifier != identifier) )) ;) })) (if_statement "if (line_00->cc_free != 0) {\n      line_00->cc_free = line_00->cc_free + iVar10;\n    }" if (parenthesized_expression "(line_00->cc_free != 0)" ( (binary_expression "line_00->cc_free != 0" (field_expression "line_00->cc_free" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      line_00->cc_free = line_00->cc_free + iVar10;\n    }" { (expression_statement "line_00->cc_free = line_00->cc_free + iVar10;" (assignment_expression "line_00->cc_free = line_00->cc_free + iVar10" (field_expression "line_00->cc_free" identifier -> field_identifier) = (binary_expression "line_00->cc_free + iVar10" (field_expression "line_00->cc_free" identifier -> field_identifier) + identifier)) ;) })) (if_statement "if (iVar2 < extraout_ECX) {\n      ptVar4 = line_00->chars;\n      ptVar6 = ptVar4 + iVar2;\n      do {\n        ptVar7 = ptVar6 + 1;\n        ptVar6->chr = *(ulong *)(iVar3 + 0x48);\n        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);\n        ptVar6->cc_next = *(int *)(iVar3 + 0x50);\n        ptVar6 = ptVar7;\n      } while (ptVar7 != ptVar4 + extraout_ECX);\n    }" if (parenthesized_expression "(iVar2 < extraout_ECX)" ( (binary_expression "iVar2 < extraout_ECX" identifier < identifier) )) (compound_statement "{\n      ptVar4 = line_00->chars;\n      ptVar6 = ptVar4 + iVar2;\n      do {\n        ptVar7 = ptVar6 + 1;\n        ptVar6->chr = *(ulong *)(iVar3 + 0x48);\n        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);\n        ptVar6->cc_next = *(int *)(iVar3 + 0x50);\n        ptVar6 = ptVar7;\n      } while (ptVar7 != ptVar4 + extraout_ECX);\n    }" { (expression_statement "ptVar4 = line_00->chars;" (assignment_expression "ptVar4 = line_00->chars" identifier = (field_expression "line_00->chars" identifier -> field_identifier)) ;) (expression_statement "ptVar6 = ptVar4 + iVar2;" (assignment_expression "ptVar6 = ptVar4 + iVar2" identifier = (binary_expression "ptVar4 + iVar2" identifier + identifier)) ;) (do_statement "do {\n        ptVar7 = ptVar6 + 1;\n        ptVar6->chr = *(ulong *)(iVar3 + 0x48);\n        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);\n        ptVar6->cc_next = *(int *)(iVar3 + 0x50);\n        ptVar6 = ptVar7;\n      } while (ptVar7 != ptVar4 + extraout_ECX);" do (compound_statement "{\n        ptVar7 = ptVar6 + 1;\n        ptVar6->chr = *(ulong *)(iVar3 + 0x48);\n        ptVar6->attr = *(ulong *)(iVar3 + 0x4c);\n        ptVar6->cc_next = *(int *)(iVar3 + 0x50);\n        ptVar6 = ptVar7;\n      }" { (expression_statement "ptVar7 = ptVar6 + 1;" (assignment_expression "ptVar7 = ptVar6 + 1" identifier = (binary_expression "ptVar6 + 1" identifier + number_literal)) ;) (expression_statement "ptVar6->chr = *(ulong *)(iVar3 + 0x48);" (assignment_expression "ptVar6->chr = *(ulong *)(iVar3 + 0x48)" (field_expression "ptVar6->chr" identifier -> field_identifier) = (pointer_expression "*(ulong *)(iVar3 + 0x48)" * (cast_expression "(ulong *)(iVar3 + 0x48)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "ptVar6->attr = *(ulong *)(iVar3 + 0x4c);" (assignment_expression "ptVar6->attr = *(ulong *)(iVar3 + 0x4c)" (field_expression "ptVar6->attr" identifier -> field_identifier) = (pointer_expression "*(ulong *)(iVar3 + 0x4c)" * (cast_expression "(ulong *)(iVar3 + 0x4c)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4c)" ( (binary_expression "iVar3 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "ptVar6->cc_next = *(int *)(iVar3 + 0x50);" (assignment_expression "ptVar6->cc_next = *(int *)(iVar3 + 0x50)" (field_expression "ptVar6->cc_next" identifier -> field_identifier) = (pointer_expression "*(int *)(iVar3 + 0x50)" * (cast_expression "(int *)(iVar3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x50)" ( (binary_expression "iVar3 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "ptVar6 = ptVar7;" (assignment_expression "ptVar6 = ptVar7" identifier = identifier) ;) }) while (parenthesized_expression "(ptVar7 != ptVar4 + extraout_ECX)" ( (binary_expression "ptVar7 != ptVar4 + extraout_ECX" identifier != (binary_expression "ptVar4 + extraout_ECX" identifier + identifier)) )) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00032080(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined8 uVar11;\n  \n  uVar11 = FUN_0003f055();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar3 = (int)uVar11;\n  iVar2 = *(int *)(iVar8 + 4);\n  if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00032080(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined8 uVar11;\n  \n  uVar11 = FUN_0003f055();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar3 = (int)uVar11;\n  iVar2 = *(int *)(iVar8 + 4);\n  if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00032080(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined8 uVar11;\n  \n  uVar11 = FUN_0003f055();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar3 = (int)uVar11;\n  iVar2 = *(int *)(iVar8 + 4);\n  if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (expression_statement "uVar11 = FUN_0003f055();" (assignment_expression "uVar11 = FUN_0003f055()" identifier = (call_expression "FUN_0003f055()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar8 = (int)((ulonglong)uVar11 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar3 = (int)uVar11;" (assignment_expression "iVar3 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar2 = *(int *)(iVar8 + 4);" (assignment_expression "iVar2 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }" if (parenthesized_expression "(iVar2 != extraout_ECX)" ( (binary_expression "iVar2 != extraout_ECX" identifier != identifier) )) (compound_statement "{\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }" { (expression_statement "iVar9 = extraout_ECX - iVar2;" (assignment_expression "iVar9 = extraout_ECX - iVar2" identifier = (binary_expression "extraout_ECX - iVar2" identifier - identifier)) ;) (expression_statement "iVar10 = extraout_ECX;" (assignment_expression "iVar10 = extraout_ECX" identifier = identifier) ;) (if_statement "if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }" if (parenthesized_expression "(extraout_ECX < iVar2)" ( (binary_expression "extraout_ECX < iVar2" identifier < identifier) )) (compound_statement "{\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }" { (do_statement "do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);" do (compound_statement "{\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00032000();" (call_expression "FUN_00032000()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(iVar2 != iVar10)" ( (binary_expression "iVar2 != iVar10" identifier != identifier) )) ;) (expression_statement "memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);" (call_expression "memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc)" identifier (argument_list "((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc)" ( (cast_expression "(void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc)" ( (binary_expression "*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) + (binary_expression "extraout_ECX * 0xc" identifier * number_literal)) ))) , (cast_expression "(void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x14) + iVar2 * 0xc)" ( (binary_expression "*(int *)(iVar8 + 0x14) + iVar2 * 0xc" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) + (binary_expression "iVar2 * 0xc" identifier * number_literal)) ))) , (binary_expression "(*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc" (parenthesized_expression "(*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4))" ( (binary_expression "*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) )) * number_literal) ))) ;) (expression_statement "iVar10 = iVar9 + *(int *)(iVar8 + 8);" (assignment_expression "iVar10 = iVar9 + *(int *)(iVar8 + 8)" identifier = (binary_expression "iVar9 + *(int *)(iVar8 + 8)" identifier + (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar8 + 8) = iVar10;" (assignment_expression "*(int *)(iVar8 + 8) = iVar10" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);" (assignment_expression "uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" identifier = (call_expression "FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" identifier (argument_list "(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = uVar4;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = uVar4" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar8 + 4) = extraout_ECX;" (assignment_expression "*(int *)(iVar8 + 4) = extraout_ECX" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }" else (compound_statement "{\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }" { (expression_statement "iVar10 = iVar9 + *(int *)(iVar8 + 8);" (assignment_expression "iVar10 = iVar9 + *(int *)(iVar8 + 8)" identifier = (binary_expression "iVar9 + *(int *)(iVar8 + 8)" identifier + (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar8 + 8) = iVar10;" (assignment_expression "*(int *)(iVar8 + 8) = iVar10" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);" (assignment_expression "iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" identifier = (call_expression "FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" identifier (argument_list "(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) , identifier , number_literal )))) ;) (expression_statement "*(int *)(iVar8 + 0x14) = iVar10;" (assignment_expression "*(int *)(iVar8 + 0x14) = iVar10" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar8 + 4) = extraout_ECX;" (assignment_expression "*(int *)(iVar8 + 4) = extraout_ECX" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }" if (parenthesized_expression "(iVar2 < extraout_ECX)" ( (binary_expression "iVar2 < extraout_ECX" identifier < identifier) )) (compound_statement "{\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }" { (expression_statement "memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);" (call_expression "memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc)" identifier (argument_list "((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc)" ( (cast_expression "(void *)(iVar10 + extraout_ECX * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + extraout_ECX * 0xc)" ( (binary_expression "iVar10 + extraout_ECX * 0xc" identifier + (binary_expression "extraout_ECX * 0xc" identifier * number_literal)) ))) , (cast_expression "(void *)(iVar10 + iVar2 * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar2 * 0xc)" ( (binary_expression "iVar10 + iVar2 * 0xc" identifier + (binary_expression "iVar2 * 0xc" identifier * number_literal)) ))) , (binary_expression "(*(int *)(iVar8 + 8) - extraout_ECX) * 0xc" (parenthesized_expression "(*(int *)(iVar8 + 8) - extraout_ECX)" ( (binary_expression "*(int *)(iVar8 + 8) - extraout_ECX" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) - identifier) )) * number_literal) ))) ;) })) }))) (expression_statement "iVar10 = extraout_ECX;" (assignment_expression "iVar10 = extraout_ECX" identifier = identifier) ;) (if_statement "if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }" if (parenthesized_expression "(iVar2 <= extraout_ECX)" ( (binary_expression "iVar2 <= extraout_ECX" identifier <= identifier) )) (compound_statement "{\n      iVar10 = iVar2;\n    }" { (expression_statement "iVar10 = iVar2;" (assignment_expression "iVar10 = iVar2" identifier = identifier) ;) })) (if_statement "if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }" { (expression_statement "piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8)" identifier = (cast_expression "(int *)(*(int *)(iVar8 + 0x14) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x14) + 8)" ( (binary_expression "*(int *)(iVar8 + 0x14) + 8" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar1 = piVar5 + iVar10 * 3;" (assignment_expression "piVar1 = piVar5 + iVar10 * 3" identifier = (binary_expression "piVar5 + iVar10 * 3" identifier + (binary_expression "iVar10 * 3" identifier * number_literal))) ;) (do_statement "do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);" do (compound_statement "{\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      }" { (if_statement "if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }" if (parenthesized_expression "(*piVar5 != 0)" ( (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal) )) (compound_statement "{\n          *piVar5 = *piVar5 + iVar9;\n        }" { (expression_statement "*piVar5 = *piVar5 + iVar9;" (assignment_expression "*piVar5 = *piVar5 + iVar9" (pointer_expression "*piVar5" * identifier) = (binary_expression "*piVar5 + iVar9" (pointer_expression "*piVar5" * identifier) + identifier)) ;) })) (expression_statement "piVar5 = piVar5 + 3;" (assignment_expression "piVar5 = piVar5 + 3" identifier = (binary_expression "piVar5 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar5 != piVar1)" ( (binary_expression "piVar5 != piVar1" identifier != identifier) )) ;) })) (if_statement "if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }" if (parenthesized_expression "(*(int *)(iVar8 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x10) != 0" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }" { (expression_statement "*(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;" (assignment_expression "*(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar8 + 0x10) + iVar9" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) + identifier)) ;) })) (if_statement "if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }" if (parenthesized_expression "(iVar2 < extraout_ECX)" ( (binary_expression "iVar2 < extraout_ECX" identifier < identifier) )) (compound_statement "{\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }" { (expression_statement "iVar8 = *(int *)(iVar8 + 0x14);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x14)" identifier = (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);" (assignment_expression "puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar8 + iVar2 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar2 * 0xc)" ( (binary_expression "iVar8 + iVar2 * 0xc" identifier + (binary_expression "iVar2 * 0xc" identifier * number_literal)) )))) ;) (do_statement "do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));" do (compound_statement "{\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      }" { (expression_statement "puVar7 = puVar6 + 3;" (assignment_expression "puVar7 = puVar6 + 3" identifier = (binary_expression "puVar6 + 3" identifier + number_literal)) ;) (expression_statement "*puVar6 = *(undefined4 *)(iVar3 + 0x48);" (assignment_expression "*puVar6 = *(undefined4 *)(iVar3 + 0x48)" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*(undefined4 *)(iVar3 + 0x48)" * (cast_expression "(undefined4 *)(iVar3 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);" (assignment_expression "puVar6[1] = *(undefined4 *)(iVar3 + 0x4c)" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar3 + 0x4c)" * (cast_expression "(undefined4 *)(iVar3 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4c)" ( (binary_expression "iVar3 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "puVar6[2] = *(undefined4 *)(iVar3 + 0x50);" (assignment_expression "puVar6[2] = *(undefined4 *)(iVar3 + 0x50)" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar3 + 0x50)" * (cast_expression "(undefined4 *)(iVar3 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x50)" ( (binary_expression "iVar3 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc))" ( (binary_expression "puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc)" identifier != (cast_expression "(undefined4 *)(iVar8 + extraout_ECX * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + extraout_ECX * 0xc)" ( (binary_expression "iVar8 + extraout_ECX * 0xc" identifier + (binary_expression "extraout_ECX * 0xc" identifier * number_literal)) )))) )) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))) , (binary_expression (parenthesized_expression ( (binary_expression (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) ))))) )) * LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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) ;) (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) )))) , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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) ;) (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) )))) , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) )) * LIT) ))) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 + (binary_expression IDENT * LIT))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (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) )))) + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) )) ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_00032080(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined8 uVar11;\n  \n  uVar11 = FUN_0003f055();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar3 = (int)uVar11;\n  iVar2 = *(int *)(iVar8 + 4);\n  if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00032080(void)" (identifier "FUN_00032080") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int extraout_ECX;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined8 uVar11;\n  \n  uVar11 = FUN_0003f055();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar3 = (int)uVar11;\n  iVar2 = *(int *)(iVar8 + 4);\n  if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int extraout_ECX;" (primitive_type "int") (identifier "extraout_ECX") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (expression_statement "uVar11 = FUN_0003f055();" (assignment_expression "uVar11 = FUN_0003f055()" (identifier "uVar11") (= "=") (call_expression "FUN_0003f055()" (identifier "FUN_0003f055") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar8 = (int)((ulonglong)uVar11 >> 0x20)" (identifier "iVar8") (= "=") (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar11;" (assignment_expression "iVar3 = (int)uVar11" (identifier "iVar3") (= "=") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) (; ";")) (expression_statement "iVar2 = *(int *)(iVar8 + 4);" (assignment_expression "iVar2 = *(int *)(iVar8 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (iVar2 != extraout_ECX) {\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 != extraout_ECX)" (( "(") (binary_expression "iVar2 != extraout_ECX" (identifier "iVar2") (!= "!=") (identifier "extraout_ECX")) () ")")) (compound_statement "{\n    iVar9 = extraout_ECX - iVar2;\n    iVar10 = extraout_ECX;\n    if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }\n    iVar10 = extraout_ECX;\n    if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }\n    if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }\n    if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }\n    if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }\n  }" ({ "{") (expression_statement "iVar9 = extraout_ECX - iVar2;" (assignment_expression "iVar9 = extraout_ECX - iVar2" (identifier "iVar9") (= "=") (binary_expression "extraout_ECX - iVar2" (identifier "extraout_ECX") (- "-") (identifier "iVar2"))) (; ";")) (expression_statement "iVar10 = extraout_ECX;" (assignment_expression "iVar10 = extraout_ECX" (identifier "iVar10") (= "=") (identifier "extraout_ECX")) (; ";")) (if_statement "if (extraout_ECX < iVar2) {\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }\n    else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }" (if "if") (parenthesized_expression "(extraout_ECX < iVar2)" (( "(") (binary_expression "extraout_ECX < iVar2" (identifier "extraout_ECX") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n      do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);\n      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(undefined4 *)(iVar8 + 0x14) = uVar4;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n    }" ({ "{") (do_statement "do {\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      } while (iVar2 != iVar10);" (do "do") (compound_statement "{\n        iVar10 = iVar10 + 1;\n        FUN_00032000();\n      }" ({ "{") (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00032000();" (call_expression "FUN_00032000()" (identifier "FUN_00032000") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 != iVar10)" (( "(") (binary_expression "iVar2 != iVar10" (identifier "iVar2") (!= "!=") (identifier "iVar10")) () ")")) (; ";")) (expression_statement "memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);" (call_expression "memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc)" (identifier "memmove") (argument_list "((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),\n              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),\n              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc)" (( "(") (cast_expression "(void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc)" (( "(") (binary_expression "*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc" (pointer_expression "*(int *)(iVar8 + 0x14)" (* "*") (cast_expression "(int *)(iVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (binary_expression "extraout_ECX * 0xc" (identifier "extraout_ECX") (* "*") (number_literal "0xc"))) () ")"))) (, ",") (cast_expression "(void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 0x14) + iVar2 * 0xc)" (( "(") (binary_expression "*(int *)(iVar8 + 0x14) + iVar2 * 0xc" (pointer_expression "*(int *)(iVar8 + 0x14)" (* "*") (cast_expression "(int *)(iVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (binary_expression "iVar2 * 0xc" (identifier "iVar2") (* "*") (number_literal "0xc"))) () ")"))) (, ",") (binary_expression "(*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc" (parenthesized_expression "(*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4))" (( "(") (binary_expression "*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)" (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) () ")")) (* "*") (number_literal "0xc")) () ")"))) (; ";")) (expression_statement "iVar10 = iVar9 + *(int *)(iVar8 + 8);" (assignment_expression "iVar10 = iVar9 + *(int *)(iVar8 + 8)" (identifier "iVar10") (= "=") (binary_expression "iVar9 + *(int *)(iVar8 + 8)" (identifier "iVar9") (+ "+") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "*(int *)(iVar8 + 8) = iVar10;" (assignment_expression "*(int *)(iVar8 + 8) = iVar10" (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);" (assignment_expression "uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" (identifier "uVar4") (= "=") (call_expression "FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" (identifier "FUN_0002c210") (argument_list "(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar10") (, ",") (number_literal "0xc") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = uVar4;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = uVar4" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(int *)(iVar8 + 4) = extraout_ECX;" (assignment_expression "*(int *)(iVar8 + 4) = extraout_ECX" (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "extraout_ECX")) (; ";")) (} "}")) (else_clause "else {\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }" (else "else") (compound_statement "{\n      iVar10 = iVar9 + *(int *)(iVar8 + 8);\n      *(int *)(iVar8 + 8) = iVar10;\n      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);\n      *(int *)(iVar8 + 0x14) = iVar10;\n      *(int *)(iVar8 + 4) = extraout_ECX;\n      if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }\n    }" ({ "{") (expression_statement "iVar10 = iVar9 + *(int *)(iVar8 + 8);" (assignment_expression "iVar10 = iVar9 + *(int *)(iVar8 + 8)" (identifier "iVar10") (= "=") (binary_expression "iVar9 + *(int *)(iVar8 + 8)" (identifier "iVar9") (+ "+") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "*(int *)(iVar8 + 8) = iVar10;" (assignment_expression "*(int *)(iVar8 + 8) = iVar10" (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);" (assignment_expression "iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" (identifier "iVar10") (= "=") (call_expression "FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" (identifier "FUN_0002c210") (argument_list "(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc)" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar10") (, ",") (number_literal "0xc") () ")")))) (; ";")) (expression_statement "*(int *)(iVar8 + 0x14) = iVar10;" (assignment_expression "*(int *)(iVar8 + 0x14) = iVar10" (pointer_expression "*(int *)(iVar8 + 0x14)" (* "*") (cast_expression "(int *)(iVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "*(int *)(iVar8 + 4) = extraout_ECX;" (assignment_expression "*(int *)(iVar8 + 4) = extraout_ECX" (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "extraout_ECX")) (; ";")) (if_statement "if (iVar2 < extraout_ECX) {\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }" (if "if") (parenthesized_expression "(iVar2 < extraout_ECX)" (( "(") (binary_expression "iVar2 < extraout_ECX" (identifier "iVar2") (< "<") (identifier "extraout_ECX")) () ")")) (compound_statement "{\n        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);\n      }" ({ "{") (expression_statement "memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);" (call_expression "memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc)" (identifier "memmove") (argument_list "((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),\n                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc)" (( "(") (cast_expression "(void *)(iVar10 + extraout_ECX * 0xc)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + extraout_ECX * 0xc)" (( "(") (binary_expression "iVar10 + extraout_ECX * 0xc" (identifier "iVar10") (+ "+") (binary_expression "extraout_ECX * 0xc" (identifier "extraout_ECX") (* "*") (number_literal "0xc"))) () ")"))) (, ",") (cast_expression "(void *)(iVar10 + iVar2 * 0xc)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar2 * 0xc)" (( "(") (binary_expression "iVar10 + iVar2 * 0xc" (identifier "iVar10") (+ "+") (binary_expression "iVar2 * 0xc" (identifier "iVar2") (* "*") (number_literal "0xc"))) () ")"))) (, ",") (binary_expression "(*(int *)(iVar8 + 8) - extraout_ECX) * 0xc" (parenthesized_expression "(*(int *)(iVar8 + 8) - extraout_ECX)" (( "(") (binary_expression "*(int *)(iVar8 + 8) - extraout_ECX" (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (- "-") (identifier "extraout_ECX")) () ")")) (* "*") (number_literal "0xc")) () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar10 = extraout_ECX;" (assignment_expression "iVar10 = extraout_ECX" (identifier "iVar10") (= "=") (identifier "extraout_ECX")) (; ";")) (if_statement "if (iVar2 <= extraout_ECX) {\n      iVar10 = iVar2;\n    }" (if "if") (parenthesized_expression "(iVar2 <= extraout_ECX)" (( "(") (binary_expression "iVar2 <= extraout_ECX" (identifier "iVar2") (<= "<=") (identifier "extraout_ECX")) () ")")) (compound_statement "{\n      iVar10 = iVar2;\n    }" ({ "{") (expression_statement "iVar10 = iVar2;" (assignment_expression "iVar10 = iVar2" (identifier "iVar10") (= "=") (identifier "iVar2")) (; ";")) (} "}"))) (if_statement "if (0 < iVar10) {\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }" (if "if") (parenthesized_expression "(0 < iVar10)" (( "(") (binary_expression "0 < iVar10" (number_literal "0") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);\n      piVar1 = piVar5 + iVar10 * 3;\n      do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);\n    }" ({ "{") (expression_statement "piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8)" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(int *)(iVar8 + 0x14) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 0x14) + 8)" (( "(") (binary_expression "*(int *)(iVar8 + 0x14) + 8" (pointer_expression "*(int *)(iVar8 + 0x14)" (* "*") (cast_expression "(int *)(iVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "piVar1 = piVar5 + iVar10 * 3;" (assignment_expression "piVar1 = piVar5 + iVar10 * 3" (identifier "piVar1") (= "=") (binary_expression "piVar5 + iVar10 * 3" (identifier "piVar5") (+ "+") (binary_expression "iVar10 * 3" (identifier "iVar10") (* "*") (number_literal "3")))) (; ";")) (do_statement "do {\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      } while (piVar5 != piVar1);" (do "do") (compound_statement "{\n        if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }\n        piVar5 = piVar5 + 3;\n      }" ({ "{") (if_statement "if (*piVar5 != 0) {\n          *piVar5 = *piVar5 + iVar9;\n        }" (if "if") (parenthesized_expression "(*piVar5 != 0)" (( "(") (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *piVar5 = *piVar5 + iVar9;\n        }" ({ "{") (expression_statement "*piVar5 = *piVar5 + iVar9;" (assignment_expression "*piVar5 = *piVar5 + iVar9" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (binary_expression "*piVar5 + iVar9" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (identifier "iVar9"))) (; ";")) (} "}"))) (expression_statement "piVar5 = piVar5 + 3;" (assignment_expression "piVar5 = piVar5 + 3" (identifier "piVar5") (= "=") (binary_expression "piVar5 + 3" (identifier "piVar5") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar5 != piVar1)" (( "(") (binary_expression "piVar5 != piVar1" (identifier "piVar5") (!= "!=") (identifier "piVar1")) () ")")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar8 + 0x10) != 0) {\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(iVar8 + 0x10) != 0" (pointer_expression "*(int *)(iVar8 + 0x10)" (* "*") (cast_expression "(int *)(iVar8 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;\n    }" ({ "{") (expression_statement "*(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;" (assignment_expression "*(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9" (pointer_expression "*(int *)(iVar8 + 0x10)" (* "*") (cast_expression "(int *)(iVar8 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(int *)(iVar8 + 0x10) + iVar9" (pointer_expression "*(int *)(iVar8 + 0x10)" (* "*") (cast_expression "(int *)(iVar8 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "iVar9"))) (; ";")) (} "}"))) (if_statement "if (iVar2 < extraout_ECX) {\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }" (if "if") (parenthesized_expression "(iVar2 < extraout_ECX)" (( "(") (binary_expression "iVar2 < extraout_ECX" (identifier "iVar2") (< "<") (identifier "extraout_ECX")) () ")")) (compound_statement "{\n      iVar8 = *(int *)(iVar8 + 0x14);\n      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);\n      do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar8 + 0x14);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x14)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + 0x14)" (* "*") (cast_expression "(int *)(iVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);" (assignment_expression "puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(iVar8 + iVar2 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar2 * 0xc)" (( "(") (binary_expression "iVar8 + iVar2 * 0xc" (identifier "iVar8") (+ "+") (binary_expression "iVar2 * 0xc" (identifier "iVar2") (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (do_statement "do {\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));" (do "do") (compound_statement "{\n        puVar7 = puVar6 + 3;\n        *puVar6 = *(undefined4 *)(iVar3 + 0x48);\n        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);\n        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);\n        puVar6 = puVar7;\n      }" ({ "{") (expression_statement "puVar7 = puVar6 + 3;" (assignment_expression "puVar7 = puVar6 + 3" (identifier "puVar7") (= "=") (binary_expression "puVar6 + 3" (identifier "puVar6") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*puVar6 = *(undefined4 *)(iVar3 + 0x48);" (assignment_expression "*puVar6 = *(undefined4 *)(iVar3 + 0x48)" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 0x48)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x48)" (( "(") (binary_expression "iVar3 + 0x48" (identifier "iVar3") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);" (assignment_expression "puVar6[1] = *(undefined4 *)(iVar3 + 0x4c)" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x4c)" (( "(") (binary_expression "iVar3 + 0x4c" (identifier "iVar3") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "puVar6[2] = *(undefined4 *)(iVar3 + 0x50);" (assignment_expression "puVar6[2] = *(undefined4 *)(iVar3 + 0x50)" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 0x50)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x50)" (( "(") (binary_expression "iVar3 + 0x50" (identifier "iVar3") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" (identifier "puVar6") (= "=") (identifier "puVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc))" (( "(") (binary_expression "puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc)" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)(iVar8 + extraout_ECX * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + extraout_ECX * 0xc)" (( "(") (binary_expression "iVar8 + extraout_ECX * 0xc" (identifier "iVar8") (+ "+") (binary_expression "extraout_ECX * 0xc" (identifier "extraout_ECX") (* "*") (number_literal "0xc"))) () ")")))) () ")")) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void function_1(type_1 *term,type_2 *line,int cols)

{
  int *var_12;
  int var_2;
  int var_14;
  type_3 *var_10;
  int *var_11;
  type_3 *var_13;
  type_3 *var_15;
  int var_3;
  size_t sVar8;
  type_2 *line_00;
  int var_4;
  int var_8;
  int var_6;
  type_4 uVar12;
  
  uVar12 = var_1();
  line_00 = (type_2 *)((type_5)uVar12 >> 0x20);
  var_14 = (int)uVar12;
  var_2 = line_00->cols;
  if (var_2 != var_3) {
    var_8 = var_3 - var_2;
    var_4 = var_3;
    if (var_3 < var_2) {
      do {
        var_6 = var_4 + 1;
        var_5(line_00,var_4);
        var_4 = var_6;
      } while (var_2 != var_6);
      var_7(line_00->chars + var_3,line_00->chars + var_2,
              (line_00->size - line_00->cols) * 0xc);
      sVar8 = var_8 + line_00->size;
      line_00->size = sVar8;
      var_10 = (type_3 *)var_9(line_00->chars,sVar8,0xc);
      line_00->chars = var_10;
      line_00->cols = var_3;
    }
    else {
      sVar8 = var_8 + line_00->size;
      line_00->size = sVar8;
      var_10 = (type_3 *)var_9(line_00->chars,sVar8,0xc);
      line_00->chars = var_10;
      line_00->cols = var_3;
      if (var_2 < var_3) {
        var_7(var_10 + var_3,var_10 + var_2,(line_00->size - var_3) * 0xc);
      }
    }
    var_4 = var_3;
    if (var_2 <= var_3) {
      var_4 = var_2;
    }
    if (0 < var_4) {
      var_11 = &line_00->chars->cc_next;
      var_12 = var_11 + var_4 * 3;
      do {
        if (*var_11 != 0) {
          *var_11 = *var_11 + var_8;
        }
        var_11 = var_11 + 3;
      } while (var_11 != var_12);
    }
    if (line_00->cc_free != 0) {
      line_00->cc_free = line_00->cc_free + var_8;
    }
    if (var_2 < var_3) {
      var_10 = line_00->chars;
      var_13 = var_10 + var_2;
      do {
        var_15 = var_13 + 1;
        var_13->chr = *(type_6 *)(var_14 + 0x48);
        var_13->attr = *(type_6 *)(var_14 + 0x4c);
        var_13->cc_next = *(int *)(var_14 + 0x50);
        var_13 = var_15;
      } while (var_15 != var_10 + var_3);
    }
  }
  return;
}


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

void MASKED(void)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  int *piVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  int extraout_ECX;
  int iVar8;
  int iVar9;
  int iVar10;
  undefined8 uVar11;
  
  uVar11 = FUN_0003f055();
  iVar8 = (int)((ulonglong)uVar11 >> 0x20);
  iVar3 = (int)uVar11;
  iVar2 = *(int *)(iVar8 + 4);
  if (iVar2 != extraout_ECX) {
    iVar9 = extraout_ECX - iVar2;
    iVar10 = extraout_ECX;
    if (extraout_ECX < iVar2) {
      do {
        iVar10 = iVar10 + 1;
        FUN_00032000();
      } while (iVar2 != iVar10);
      memmove((void *)(*(int *)(iVar8 + 0x14) + extraout_ECX * 0xc),
              (void *)(*(int *)(iVar8 + 0x14) + iVar2 * 0xc),
              (*(int *)(iVar8 + 8) - *(int *)(iVar8 + 4)) * 0xc);
      iVar10 = iVar9 + *(int *)(iVar8 + 8);
      *(int *)(iVar8 + 8) = iVar10;
      uVar4 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);
      *(undefined4 *)(iVar8 + 0x14) = uVar4;
      *(int *)(iVar8 + 4) = extraout_ECX;
    }
    else {
      iVar10 = iVar9 + *(int *)(iVar8 + 8);
      *(int *)(iVar8 + 8) = iVar10;
      iVar10 = FUN_0002c210(*(undefined4 *)(iVar8 + 0x14),iVar10,0xc);
      *(int *)(iVar8 + 0x14) = iVar10;
      *(int *)(iVar8 + 4) = extraout_ECX;
      if (iVar2 < extraout_ECX) {
        memmove((void *)(iVar10 + extraout_ECX * 0xc),(void *)(iVar10 + iVar2 * 0xc),
                (*(int *)(iVar8 + 8) - extraout_ECX) * 0xc);
      }
    }
    iVar10 = extraout_ECX;
    if (iVar2 <= extraout_ECX) {
      iVar10 = iVar2;
    }
    if (0 < iVar10) {
      piVar5 = (int *)(*(int *)(iVar8 + 0x14) + 8);
      piVar1 = piVar5 + iVar10 * 3;
      do {
        if (*piVar5 != 0) {
          *piVar5 = *piVar5 + iVar9;
        }
        piVar5 = piVar5 + 3;
      } while (piVar5 != piVar1);
    }
    if (*(int *)(iVar8 + 0x10) != 0) {
      *(int *)(iVar8 + 0x10) = *(int *)(iVar8 + 0x10) + iVar9;
    }
    if (iVar2 < extraout_ECX) {
      iVar8 = *(int *)(iVar8 + 0x14);
      puVar6 = (undefined4 *)(iVar8 + iVar2 * 0xc);
      do {
        puVar7 = puVar6 + 3;
        *puVar6 = *(undefined4 *)(iVar3 + 0x48);
        puVar6[1] = *(undefined4 *)(iVar3 + 0x4c);
        puVar6[2] = *(undefined4 *)(iVar3 + 0x50);
        puVar6 = puVar7;
      } while (puVar7 != (undefined4 *)(iVar8 + extraout_ECX * 0xc));
    }
  }
  return;
}

