
void sqlite3AddPrimaryKey(Parse *pParse,ExprList *pList,int onError,int autoInc,int sortOrder)

{
  ushort uVar1;
  Table *pTVar2;
  Expr *pEVar3;
  RenameToken *pRVar4;
  code *pcVar5;
  ushort uVar6;
  Parse *pParse_00;
  size_t sVar7;
  int iVar8;
  Token *pName2;
  uint uVar9;
  byte *pbVar10;
  u8 uVar11;
  ExprList *pList_00;
  uint uVar12;
  byte *pbVar13;
  char *pcVar14;
  i16 iVar15;
  int iVar16;
  Column *pCVar17;
  int unaff_EDI;
  undefined8 uVar18;
  int in_stack_ffffffa4;
  int in_stack_ffffffa8;
  u8 in_stack_ffffffac;
  int local_50;
  ExprList_item *local_4c;
  Column *local_2c;
  u8 local_28;
  
  uVar18 = __x86_get_pc_thunk_di();
  pList_00 = (ExprList *)((ulonglong)uVar18 >> 0x20);
  pParse_00 = (Parse *)uVar18;
  pTVar2 = pParse_00->pNewTable;
  if (pTVar2 != (Table *)0x0) {
    if ((pTVar2->tabFlags & 4) == 0) {
      pTVar2->tabFlags = pTVar2->tabFlags | 4;
      if (pList_00 == (ExprList *)0x0) {
        iVar16 = pTVar2->nCol + -1;
        local_2c = pTVar2->aCol + iVar16;
        uVar1 = local_2c->colFlags;
        uVar6 = uVar1 | 1;
        local_2c->colFlags = uVar6;
        if ((uVar1 & 0x60) != 0) {
          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));
          uVar6 = local_2c->colFlags;
        }
LAB_000c7cde:
        pcVar14 = (char *)(unaff_EDI + 0xa9b7);
        if ((uVar6 & 4) != 0) {
          pcVar14 = local_2c->zName;
          sVar7 = strlen(pcVar14);
          pcVar14 = pcVar14 + sVar7 + 1;
        }
        iVar8 = 0;
        do {
          uVar12 = (uint)(byte)pcVar14[iVar8];
          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);
          if (uVar12 == uVar9) {
            if (uVar12 == 0) goto code_r0x000c7d34;
          }
          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)
                  ) goto LAB_000c7e20;
          iVar8 = iVar8 + 1;
        } while( true );
      }
      iVar8 = pList_00->nExpr;
      if (0 < iVar8) {
        local_4c = pList_00->a;
        local_50 = 0;
        iVar16 = -1;
        local_2c = (Column *)0x0;
        do {
          pEVar3 = local_4c->pExpr;
          while( true ) {
            if (pEVar3 == (Expr *)0x0) {
                    /* WARNING: Does not return */
              pcVar5 = (code *)invalidInstructionException();
              (*pcVar5)();
            }
            if ((pEVar3->flags & 0x1000) == 0) break;
            pEVar3 = pEVar3->pLeft;
          }
          uVar11 = pEVar3->op;
          if (uVar11 == 's') {
            pEVar3->op = ';';
LAB_000c7e93:
            if (0 < pTVar2->nCol) {
              pCVar17 = pTVar2->aCol;
              iVar16 = 0;
LAB_000c7eb8:
              pbVar10 = (byte *)pCVar17->zName;
              pbVar13 = (byte *)(pEVar3->u).zToken;
              do {
                uVar9 = (uint)*pbVar13;
                if (uVar9 == *pbVar10) {
                  if (uVar9 == 0) {
                    uVar6 = pCVar17->colFlags;
                    pCVar17->colFlags = uVar6 | 1;
                    local_2c = pCVar17;
                    if ((uVar6 & 0x60) != 0) {
                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));
                    }
                    goto LAB_000c7caf;
                  }
                }
                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=
                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;
                pbVar13 = pbVar13 + 1;
                pbVar10 = pbVar10 + 1;
              } while( true );
            }
            iVar16 = 0;
          }
          else if (uVar11 == 'o') {
            if (pEVar3->pLeft->op == 's') {
              pEVar3->pLeft->op = ';';
              uVar11 = pEVar3->op;
              goto LAB_000c7ca6;
            }
          }
          else {
LAB_000c7ca6:
            if (uVar11 == ';') goto LAB_000c7e93;
          }
LAB_000c7caf:
          local_50 = local_50 + 1;
          local_4c = local_4c + 1;
        } while (iVar8 != local_50);
        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {
          uVar6 = local_2c->colFlags;
          goto LAB_000c7cde;
        }
      }
      goto LAB_000c7e20;
    }
    sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe0f3),pTVar2->zName);
  }
  goto joined_r0x000c7e74;
LAB_000c7f08:
  iVar16 = iVar16 + 1;
  pCVar17 = pCVar17 + 1;
  if (iVar16 == pTVar2->nCol) goto LAB_000c7caf;
  goto LAB_000c7eb8;
code_r0x000c7d34:
  if (pList != (ExprList *)&DAT_00000001) {
    uVar9 = (int)pParse << 3 | pTVar2->tabFlags;
    iVar15 = (i16)iVar16;
    local_28 = (u8)pName2;
    if (pParse_00->eParseMode < 2) {
      pTVar2->iPKey = iVar15;
      pTVar2->tabFlags = uVar9;
      pTVar2->keyConf = local_28;
      if (pList_00 == (ExprList *)0x0) {
        return;
      }
    }
    else {
      if (pList_00 == (ExprList *)0x0) {
        pTVar2->iPKey = iVar15;
        pTVar2->tabFlags = uVar9;
        pTVar2->keyConf = local_28;
        return;
      }
      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))
          ; pEVar3 = pEVar3->pLeft) {
      }
      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {
        if (pEVar3 == (Expr *)pRVar4->p) {
          pRVar4->p = &pTVar2->iPKey;
          break;
        }
      }
      pTVar2->iPKey = iVar15;
      pTVar2->tabFlags = uVar9;
      pTVar2->keyConf = local_28;
    }
    uVar11 = pList_00->a[0].sortFlags;
    pParse_00->iPkSortOrder = uVar11;
    if (0 < pList_00->nExpr) {
      iVar16 = 0;
      if ((pList_00->a[0].field_0x9 & 0x20) == 0) {
        do {
          iVar8 = iVar16;
          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;
          iVar16 = iVar8 + 1;
        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);
        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;
      }
      if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {
        iVar16 = unaff_EDI + 0x9c3b;
      }
      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);
    }
    goto LAB_000c7e08;
  }
LAB_000c7e20:
  if (pParse == (Parse *)0x0) {
    sqlite3CreateIndex((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,
                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,
                       in_stack_ffffffac);
    return;
  }
  sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe11f));
joined_r0x000c7e74:
  if (pList_00 == (ExprList *)0x0) {
    return;
  }
LAB_000c7e08:
  exprListDeleteNN(pParse_00->db,pList_00);
  return;
}



void FUN_000c7bd0(int param_1,int param_2)

{
  ushort uVar1;
  undefined4 *puVar2;
  int *piVar3;
  code *pcVar4;
  ushort uVar5;
  int iVar6;
  size_t sVar7;
  int iVar8;
  undefined4 extraout_ECX;
  uint uVar9;
  byte *pbVar10;
  char cVar11;
  int *piVar12;
  uint uVar13;
  byte *pbVar14;
  char *pcVar15;
  undefined2 uVar16;
  int iVar17;
  undefined4 *puVar18;
  int unaff_EDI;
  undefined8 uVar19;
  int local_50;
  int *local_4c;
  undefined4 *local_2c;
  undefined1 local_28;
  
  uVar19 = FUN_000d0aaf();
  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);
  iVar6 = (int)uVar19;
  puVar2 = *(undefined4 **)(iVar6 + 0xe8);
  if (puVar2 != (undefined4 *)0x0) {
    if ((puVar2[9] & 4) == 0) {
      puVar2[9] = puVar2[9] | 4;
      if (piVar12 == (int *)0x0) {
        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;
        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);
        uVar1 = *(ushort *)(local_2c + 4);
        uVar5 = uVar1 | 1;
        *(ushort *)(local_2c + 4) = uVar5;
        if ((uVar1 & 0x60) != 0) {
          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);
          uVar5 = *(ushort *)(local_2c + 4);
        }
LAB_000c7cde:
        pcVar15 = (char *)(unaff_EDI + 0xa9b7);
        if ((uVar5 & 4) != 0) {
          pcVar15 = (char *)*local_2c;
          sVar7 = strlen(pcVar15);
          pcVar15 = pcVar15 + sVar7 + 1;
        }
        iVar8 = 0;
        do {
          uVar13 = (uint)(byte)pcVar15[iVar8];
          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);
          if (uVar13 == uVar9) {
            if (uVar13 == 0) goto code_r0x000c7d34;
          }
          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)
                  ) goto LAB_000c7e20;
          iVar8 = iVar8 + 1;
        } while( true );
      }
      iVar8 = *piVar12;
      if (0 < iVar8) {
        local_4c = piVar12 + 1;
        local_50 = 0;
        iVar17 = -1;
        local_2c = (undefined4 *)0x0;
        do {
          pcVar15 = (char *)*local_4c;
          while( true ) {
            if (pcVar15 == (char *)0x0) {
                    /* WARNING: Does not return */
              pcVar4 = (code *)invalidInstructionException();
              (*pcVar4)();
            }
            if ((pcVar15[5] & 0x10U) == 0) break;
            pcVar15 = *(char **)(pcVar15 + 0xc);
          }
          cVar11 = *pcVar15;
          if (cVar11 == 's') {
            *pcVar15 = ';';
LAB_000c7e93:
            if (0 < *(short *)((int)puVar2 + 0x2a)) {
              puVar18 = (undefined4 *)puVar2[1];
              iVar17 = 0;
LAB_000c7eb8:
              pbVar10 = (byte *)*puVar18;
              pbVar14 = *(byte **)(pcVar15 + 8);
              do {
                uVar9 = (uint)*pbVar14;
                if (uVar9 == *pbVar10) {
                  if (uVar9 == 0) {
                    uVar5 = *(ushort *)(puVar18 + 4);
                    *(ushort *)(puVar18 + 4) = uVar5 | 1;
                    local_2c = puVar18;
                    if ((uVar5 & 0x60) != 0) {
                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);
                    }
                    goto LAB_000c7caf;
                  }
                }
                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=
                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;
                pbVar14 = pbVar14 + 1;
                pbVar10 = pbVar10 + 1;
              } while( true );
            }
            iVar17 = 0;
          }
          else if (cVar11 == 'o') {
            if (**(char **)(pcVar15 + 0xc) == 's') {
              **(char **)(pcVar15 + 0xc) = ';';
              cVar11 = *pcVar15;
              goto LAB_000c7ca6;
            }
          }
          else {
LAB_000c7ca6:
            if (cVar11 == ';') goto LAB_000c7e93;
          }
LAB_000c7caf:
          local_50 = local_50 + 1;
          local_4c = local_4c + 4;
        } while (iVar8 != local_50);
        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {
          uVar5 = *(ushort *)(local_2c + 4);
          goto LAB_000c7cde;
        }
      }
      goto LAB_000c7e20;
    }
    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);
  }
  goto joined_r0x000c7e74;
LAB_000c7f08:
  iVar17 = iVar17 + 1;
  puVar18 = puVar18 + 5;
  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;
  goto LAB_000c7eb8;
code_r0x000c7d34:
  if (param_2 != 1) {
    uVar9 = param_1 << 3 | puVar2[9];
    uVar16 = (undefined2)iVar17;
    local_28 = (undefined1)extraout_ECX;
    if (*(byte *)(iVar6 + 0xcc) < 2) {
      *(undefined2 *)(puVar2 + 10) = uVar16;
      puVar2[9] = uVar9;
      *(undefined1 *)((int)puVar2 + 0x32) = local_28;
      if (piVar12 == (int *)0x0) {
        return;
      }
    }
    else {
      if (piVar12 == (int *)0x0) {
        *(undefined2 *)(puVar2 + 10) = uVar16;
        puVar2[9] = uVar9;
        *(undefined1 *)((int)puVar2 + 0x32) = local_28;
        return;
      }
      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));
          iVar17 = *(int *)(iVar17 + 0xc)) {
      }
      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {
        if (iVar17 == *piVar3) {
          *piVar3 = (int)(puVar2 + 10);
          break;
        }
      }
      *(undefined2 *)(puVar2 + 10) = uVar16;
      puVar2[9] = uVar9;
      *(undefined1 *)((int)puVar2 + 0x32) = local_28;
    }
    cVar11 = (char)piVar12[3];
    *(char *)(iVar6 + 0xca) = cVar11;
    if (0 < *piVar12) {
      iVar17 = 0;
      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {
        do {
          iVar17 = iVar17 + 1;
          if (*piVar12 == iVar17) goto LAB_000c7e08;
        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);
        cVar11 = (char)piVar12[iVar17 * 4 + 3];
      }
      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {
        iVar17 = unaff_EDI + 0x9c3b;
      }
      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);
    }
    goto LAB_000c7e08;
  }
LAB_000c7e20:
  if (param_1 == 0) {
    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);
    return;
  }
  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);
joined_r0x000c7e74:
  if (piVar12 == (int *)0x0) {
    return;
  }
LAB_000c7e08:
  FUN_00054000();
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000d0aaf
ADD EDI,0x3e427
SUB ESP,0x4c
MOV ESI,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [EAX + 0xe8]
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x34],ECX
MOV dword ptr [ESP + 0x2c],ESI
MOV ESI,dword ptr [ESP + 0x64]
TEST EAX,EAX
MOV dword ptr [ESP + 0x24],EAX
MOV dword ptr [ESP + 0x38],ESI
JZ 0x000c7e42
MOV EAX,dword ptr [EAX + 0x24]
TEST AL,0x4
JNZ 0x000c7e52
MOV EBX,dword ptr [ESP + 0x14]
MOV ESI,dword ptr [ESP + 0x24]
OR EAX,0x4
TEST EBX,EBX
MOV dword ptr [ESI + 0x24],EAX
JZ 0x000c7f5e
MOV EAX,dword ptr [EDX]
TEST EAX,EAX
MOV dword ptr [ESP + 0x20],EAX
JLE 0x000c7e20
LEA EAX,[EDX + 0x4]
MOV dword ptr [ESP + 0xc],0x0
MOV EBP,0xffffffff
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EDI + 0xfffce168]
MOV dword ptr [ESP + 0x3c],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x000c7c8b
JMP 0x000c7e80
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000c7e80
TEST byte ptr [EAX + 0x5],0x10
JNZ 0x000c7c80
MOVZX EDX,byte ptr [EAX]
CMP DL,0x73
JZ 0x000c7e90
CMP DL,0x6f
JZ 0x000c7f19
CMP DL,0x3b
JZ 0x000c7e93
ADD dword ptr [ESP + 0xc],0x1
ADD dword ptr [ESP + 0x10],0x10
MOV EAX,dword ptr [ESP + 0xc]
CMP dword ptr [ESP + 0x20],EAX
JNZ 0x000c7c68
CMP dword ptr [ESP + 0x20],0x1
JNZ 0x000c7e20
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x000c7e20
MOVZX EAX,word ptr [EAX + 0x10]
TEST AL,0x4
LEA EBX,[EDI + 0xfffcc590]
JZ 0x000c7d00
MOV EAX,dword ptr [ESP + 0x30]
SUB ESP,0xc
MOV EBX,EDI
MOV ESI,dword ptr [EAX]
PUSH ESI
CALL 0x000167d0
LEA EBX,[ESI + EAX*0x1 + 0x1]
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000c7d20
MOVZX ECX,byte ptr [EDI + ECX*0x1 + 0xfffd66c0]
CMP byte ptr [EDI + EDX*0x1 + 0xfffd66c0],CL
JNZ 0x000c7e20
ADD EAX,0x1
MOVZX EDX,byte ptr [EBX + EAX*0x1]
MOVZX ECX,byte ptr [EAX + EDI*0x1 + 0xfffcb904]
CMP EDX,ECX
JNZ 0x000c7d08
TEST EDX,EDX
JNZ 0x000c7d1d
CMP dword ptr [ESP + 0x38],0x1
JZ 0x000c7e20
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESP + 0x24]
MOV ESI,EBP
SHL EAX,0x3
OR EAX,dword ptr [ECX + 0x24]
MOV EBX,EAX
MOV EAX,dword ptr [ESP + 0x28]
CMP byte ptr [EAX + 0xcc],0x1
JBE 0x000c7fe3
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JZ 0x000c7fc8
MOV EAX,dword ptr [EAX + 0x4]
TEST EAX,EAX
JNZ 0x000c7d87
JMP 0x000c7d8d
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000c7d8d
TEST byte ptr [EAX + 0x5],0x10
JNZ 0x000c7d80
MOV ECX,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ECX + 0x114]
TEST ECX,ECX
JNZ 0x000c7da7
JMP 0x000c7db4
MOV ECX,dword ptr [ECX + 0xc]
TEST ECX,ECX
JZ 0x000c7db4
CMP EAX,dword ptr [ECX]
JNZ 0x000c7da0
MOV EAX,dword ptr [ESP + 0x24]
ADD EAX,0x28
MOV dword ptr [ECX],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV word ptr [EAX + 0x28],SI
MOV ESI,EAX
MOVZX EAX,byte ptr [ESP + 0x34]
MOV dword ptr [ESI + 0x24],EBX
MOV byte ptr [ESI + 0x32],AL
MOV ESI,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x28]
MOVZX EAX,byte ptr [ESI + 0xc]
MOV byte ptr [ECX + 0xca],AL
MOV ECX,dword ptr [ESI]
TEST ECX,ECX
JLE 0x000c7e08
TEST byte ptr [ESI + 0xd],0x20
MOV EBX,ESI
JZ 0x000c7e01
JMP 0x000c8007
MOV EAX,EDX
SHL EAX,0x4
ADD EAX,EBX
TEST byte ptr [EAX + 0xd],0x20
JNZ 0x000c8003
ADD EDX,0x1
CMP ECX,EDX
JNZ 0x000c7df0
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x00054000
MOV EDX,dword ptr [ESP + 0x2c]
TEST EDX,EDX
JZ 0x000c7f30
LEA EAX,[EDI + 0xfffcfcf8]
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x0003d470
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JNZ 0x000c7e08
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
MOV EAX,dword ptr [ESP + 0x28]
PUSH dword ptr [EAX]
LEA EAX,[EDI + 0xfffcfccc]
PUSH EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x0003d470
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JNZ 0x000c7e08
JMP 0x000c7e4a
MOVZX EAX,byte ptr [0x00000000]
UD2
MOV byte ptr [EAX],0x3b
MOV EAX,dword ptr [EAX + 0x8]
MOV ESI,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x18],EAX
MOVSX EAX,word ptr [ESI + 0x2a]
TEST EAX,EAX
MOV dword ptr [ESP + 0x1c],EAX
JLE 0x000c7fdc
MOV ESI,dword ptr [ESI + 0x4]
XOR EBP,EBP
NOP
LEA ESI,[ESI]
MOV ECX,dword ptr [ESI]
MOV EDX,dword ptr [ESP + 0x18]
JMP 0x000c7ed7
MOVZX EBX,byte ptr [EDI + EBX*0x1 + 0xfffd66c0]
CMP byte ptr [EDI + EAX*0x1 + 0xfffd66c0],BL
JNZ 0x000c7f08
ADD EDX,0x1
ADD ECX,0x1
MOVZX EAX,byte ptr [EDX]
MOVZX EBX,byte ptr [ECX]
CMP EAX,EBX
JNZ 0x000c7ec0
TEST EAX,EAX
JNZ 0x000c7ed1
MOVZX EAX,word ptr [ESI + 0x10]
MOV EDX,EAX
OR EDX,0x1
TEST AL,0x60
MOV word ptr [ESI + 0x10],DX
JNZ 0x000c7fac
MOV dword ptr [ESP + 0x30],ESI
JMP 0x000c7caf
ADD EBP,0x1
ADD ESI,0x14
CMP EBP,dword ptr [ESP + 0x1c]
JNZ 0x000c7eb8
JMP 0x000c7caf
MOV EDX,dword ptr [EAX + 0xc]
CMP byte ptr [EDX],0x73
JNZ 0x000c7caf
MOV byte ptr [EDX],0x3b
MOVZX EDX,byte ptr [EAX]
JMP 0x000c7ca6
PUSH 0x2
PUSH 0x0
XOR ECX,ECX
PUSH dword ptr [ESP + 0x40]
PUSH 0x0
XOR EDX,EDX
PUSH 0x0
PUSH dword ptr [ESP + 0x48]
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x48]
CALL 0x000c6680
ADD ESP,0x20
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOVSX EAX,word ptr [ESI + 0x2a]
LEA EBP,[EAX + -0x1]
MOV EAX,dword ptr [ESI + 0x4]
LEA EDX,[EBP + EBP*0x4]
LEA ESI,[EAX + EDX*0x4]
MOVZX EDX,word ptr [ESI + 0x10]
MOV dword ptr [ESP + 0x30],ESI
MOV EAX,EDX
OR EAX,0x1
AND EDX,0x60
MOV word ptr [ESI + 0x10],AX
JZ 0x000c7cde
LEA EAX,[EDI + 0xfffce168]
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x0003d470
MOV EAX,dword ptr [ESP + 0x40]
ADD ESP,0x10
MOVZX EAX,word ptr [EAX + 0x10]
JMP 0x000c7cde
SUB ESP,0x8
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x34]
CALL 0x0003d470
ADD ESP,0x10
MOV dword ptr [ESP + 0x30],ESI
JMP 0x000c7caf
MOVZX EAX,byte ptr [ESP + 0x34]
MOV word ptr [ECX + 0x28],BP
MOV dword ptr [ECX + 0x24],EBX
MOV byte ptr [ECX + 0x32],AL
JMP 0x000c7e4a
XOR EBP,EBP
JMP 0x000c7caf
MOVZX EAX,byte ptr [ESP + 0x34]
MOV word ptr [ECX + 0x28],BP
MOV dword ptr [ECX + 0x24],EBX
MOV byte ptr [ECX + 0x32],AL
MOV ECX,dword ptr [ESP + 0x14]
TEST ECX,ECX
JNZ 0x000c7dc9
JMP 0x000c7e4a
MOVZX EAX,byte ptr [EAX + 0xc]
TEST AL,AL
JZ 0x000c8031
CMP AL,0x3
LEA EDX,[EDI + 0xfffcb81a]
JZ 0x000c8031
LEA EAX,[EDI + 0xfffcb81f]
SUB ESP,0x4
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x0003d470
ADD ESP,0x10
JMP 0x000c7e08
LEA EDX,[EDI + 0xfffcb814]
JMP 0x000c8015
(translation_unit "void FUN_000c7bd0(int param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  code *pcVar4;\n  ushort uVar5;\n  int iVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 extraout_ECX;\n  uint uVar9;\n  byte *pbVar10;\n  char cVar11;\n  int *piVar12;\n  uint uVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  undefined2 uVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int unaff_EDI;\n  undefined8 uVar19;\n  int local_50;\n  int *local_4c;\n  undefined4 *local_2c;\n  undefined1 local_28;\n  \n  uVar19 = FUN_000d0aaf();\n  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);\n  iVar6 = (int)uVar19;\n  puVar2 = *(undefined4 **)(iVar6 + 0xe8);\n  if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar17 = iVar17 + 1;\n  puVar18 = puVar18 + 5;\n  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }\n  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);\njoined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  FUN_00054000();\n  return;\n}\n\n" (function_definition "void FUN_000c7bd0(int param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  code *pcVar4;\n  ushort uVar5;\n  int iVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 extraout_ECX;\n  uint uVar9;\n  byte *pbVar10;\n  char cVar11;\n  int *piVar12;\n  uint uVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  undefined2 uVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int unaff_EDI;\n  undefined8 uVar19;\n  int local_50;\n  int *local_4c;\n  undefined4 *local_2c;\n  undefined1 local_28;\n  \n  uVar19 = FUN_000d0aaf();\n  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);\n  iVar6 = (int)uVar19;\n  puVar2 = *(undefined4 **)(iVar6 + 0xe8);\n  if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar17 = iVar17 + 1;\n  puVar18 = puVar18 + 5;\n  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }\n  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);\njoined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  FUN_00054000();\n  return;\n}" primitive_type (function_declarator "FUN_000c7bd0(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  code *pcVar4;\n  ushort uVar5;\n  int iVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 extraout_ECX;\n  uint uVar9;\n  byte *pbVar10;\n  char cVar11;\n  int *piVar12;\n  uint uVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  undefined2 uVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int unaff_EDI;\n  undefined8 uVar19;\n  int local_50;\n  int *local_4c;\n  undefined4 *local_2c;\n  undefined1 local_28;\n  \n  uVar19 = FUN_000d0aaf();\n  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);\n  iVar6 = (int)uVar19;\n  puVar2 = *(undefined4 **)(iVar6 + 0xe8);\n  if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar17 = iVar17 + 1;\n  puVar18 = puVar18 + 5;\n  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }\n  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);\njoined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  FUN_00054000();\n  return;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined2 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar19;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined1 local_28;" type_identifier identifier ;) (expression_statement "uVar19 = FUN_000d0aaf();" (assignment_expression "uVar19 = FUN_000d0aaf()" identifier = (call_expression "FUN_000d0aaf()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar12 = (int *)((ulonglong)uVar19 >> 0x20);" (assignment_expression "piVar12 = (int *)((ulonglong)uVar19 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar19 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" ( (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar6 = (int)uVar19;" (assignment_expression "iVar6 = (int)uVar19" identifier = (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar2 = *(undefined4 **)(iVar6 + 0xe8);" (assignment_expression "puVar2 = *(undefined4 **)(iVar6 + 0xe8)" identifier = (pointer_expression "*(undefined4 **)(iVar6 + 0xe8)" * (cast_expression "(undefined4 **)(iVar6 + 0xe8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0xe8)" ( (binary_expression "iVar6 + 0xe8" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }" { (if_statement "if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }" if (parenthesized_expression "((puVar2[9] & 4) == 0)" ( (binary_expression "(puVar2[9] & 4) == 0" (parenthesized_expression "(puVar2[9] & 4)" ( (binary_expression "puVar2[9] & 4" (subscript_expression "puVar2[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }" { (expression_statement "puVar2[9] = puVar2[9] | 4;" (assignment_expression "puVar2[9] = puVar2[9] | 4" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = (binary_expression "puVar2[9] | 4" (subscript_expression "puVar2[9]" identifier [ number_literal ]) | number_literal)) ;) (if_statement "if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }" { (expression_statement "iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;" (assignment_expression "iVar17 = *(short *)((int)puVar2 + 0x2a) + -1" identifier = (binary_expression "*(short *)((int)puVar2 + 0x2a) + -1" (pointer_expression "*(short *)((int)puVar2 + 0x2a)" * (cast_expression "(short *)((int)puVar2 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x2a)" ( (binary_expression "(int)puVar2 + 0x2a" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);" (assignment_expression "local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14)" identifier = (cast_expression "(undefined4 *)(puVar2[1] + iVar17 * 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2[1] + iVar17 * 0x14)" ( (binary_expression "puVar2[1] + iVar17 * 0x14" (subscript_expression "puVar2[1]" identifier [ number_literal ]) + (binary_expression "iVar17 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "uVar1 = *(ushort *)(local_2c + 4);" (assignment_expression "uVar1 = *(ushort *)(local_2c + 4)" identifier = (pointer_expression "*(ushort *)(local_2c + 4)" * (cast_expression "(ushort *)(local_2c + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar1 | 1;" (assignment_expression "uVar5 = uVar1 | 1" identifier = (binary_expression "uVar1 | 1" identifier | number_literal)) ;) (expression_statement "*(ushort *)(local_2c + 4) = uVar5;" (assignment_expression "*(ushort *)(local_2c + 4) = uVar5" (pointer_expression "*(ushort *)(local_2c + 4)" * (cast_expression "(ushort *)(local_2c + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }" if (parenthesized_expression "((uVar1 & 0x60) != 0)" ( (binary_expression "(uVar1 & 0x60) != 0" (parenthesized_expression "(uVar1 & 0x60)" ( (binary_expression "uVar1 & 0x60" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }" { (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xc58f);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xc58f)" identifier (argument_list "(iVar6,unaff_EDI + 0xc58f)" ( identifier , (binary_expression "unaff_EDI + 0xc58f" identifier + number_literal) ))) ;) (expression_statement "uVar5 = *(ushort *)(local_2c + 4);" (assignment_expression "uVar5 = *(ushort *)(local_2c + 4)" identifier = (pointer_expression "*(ushort *)(local_2c + 4)" * (cast_expression "(ushort *)(local_2c + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);" statement_identifier : (expression_statement "pcVar15 = (char *)(unaff_EDI + 0xa9b7);" (assignment_expression "pcVar15 = (char *)(unaff_EDI + 0xa9b7)" identifier = (cast_expression "(char *)(unaff_EDI + 0xa9b7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xa9b7)" ( (binary_expression "unaff_EDI + 0xa9b7" identifier + number_literal) )))) ;)) (if_statement "if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }" if (parenthesized_expression "((uVar5 & 4) != 0)" ( (binary_expression "(uVar5 & 4) != 0" (parenthesized_expression "(uVar5 & 4)" ( (binary_expression "uVar5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }" { (expression_statement "pcVar15 = (char *)*local_2c;" (assignment_expression "pcVar15 = (char *)*local_2c" identifier = (cast_expression "(char *)*local_2c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_2c" * identifier))) ;) (expression_statement "sVar7 = strlen(pcVar15);" (assignment_expression "sVar7 = strlen(pcVar15)" identifier = (call_expression "strlen(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "pcVar15 = pcVar15 + sVar7 + 1;" (assignment_expression "pcVar15 = pcVar15 + sVar7 + 1" identifier = (binary_expression "pcVar15 + sVar7 + 1" (binary_expression "pcVar15 + sVar7" identifier + identifier) + number_literal)) ;) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );" do (compound_statement "{\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        }" { (expression_statement "uVar13 = (uint)(byte)pcVar15[iVar8];" (assignment_expression "uVar13 = (uint)(byte)pcVar15[iVar8]" identifier = (cast_expression "(uint)(byte)pcVar15[iVar8]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar15[iVar8]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar15[iVar8]" identifier [ identifier ])))) ;) (expression_statement "uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);" (assignment_expression "uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b)" identifier = (binary_expression "(uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar8 + unaff_EDI + 0x9d2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + unaff_EDI + 0x9d2b)" ( (binary_expression "iVar8 + unaff_EDI + 0x9d2b" (binary_expression "iVar8 + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) (if_statement "if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" if (parenthesized_expression "(uVar13 == uVar9)" ( (binary_expression "uVar13 == uVar9" identifier == identifier) )) (compound_statement "{\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }" { (if_statement "if (uVar13 == 0) goto code_r0x000c7d34;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000c7d34;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" else (if_statement "if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  )" ( (binary_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)" (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar13)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar13)" ( (binary_expression "unaff_EDI + 0x14ae7 + uVar13" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + identifier) )))) != (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar9)" ( (binary_expression "unaff_EDI + 0x14ae7 + uVar9" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + identifier) ))))) )) (goto_statement "goto LAB_000c7e20;" goto statement_identifier ;)))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar8 = *piVar12;" (assignment_expression "iVar8 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }" if (parenthesized_expression "(0 < iVar8)" ( (binary_expression "0 < iVar8" number_literal < identifier) )) (compound_statement "{\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }" { (expression_statement "local_4c = piVar12 + 1;" (assignment_expression "local_4c = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) (expression_statement "local_2c = (undefined4 *)0x0;" (assignment_expression "local_2c = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);" do (compound_statement "{\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        }" { (expression_statement "pcVar15 = (char *)*local_4c;" (assignment_expression "pcVar15 = (char *)*local_4c" identifier = (cast_expression "(char *)*local_4c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_4c" * identifier))) ;) (while_statement "while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }" { (if_statement "if (pcVar15 == (char *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Does not return */\n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }" { comment (expression_statement "pcVar4 = (code *)invalidInstructionException();" (assignment_expression "pcVar4 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((pcVar15[5] & 0x10U) == 0) break;" if (parenthesized_expression "((pcVar15[5] & 0x10U) == 0)" ( (binary_expression "(pcVar15[5] & 0x10U) == 0" (parenthesized_expression "(pcVar15[5] & 0x10U)" ( (binary_expression "pcVar15[5] & 0x10U" (subscript_expression "pcVar15[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar15 = *(char **)(pcVar15 + 0xc);" (assignment_expression "pcVar15 = *(char **)(pcVar15 + 0xc)" identifier = (pointer_expression "*(char **)(pcVar15 + 0xc)" * (cast_expression "(char **)(pcVar15 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "cVar11 = *pcVar15;" (assignment_expression "cVar11 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" if (parenthesized_expression "(cVar11 == 's')" ( (binary_expression "cVar11 == 's'" identifier == (char_literal "'s'" ' character ')) )) (compound_statement "{\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }" { (expression_statement "*pcVar15 = ';';" (assignment_expression "*pcVar15 = ';'" (pointer_expression "*pcVar15" * identifier) = (char_literal "';'" ' character ')) ;) (labeled_statement "LAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" statement_identifier : (if_statement "if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" if (parenthesized_expression "(0 < *(short *)((int)puVar2 + 0x2a))" ( (binary_expression "0 < *(short *)((int)puVar2 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)puVar2 + 0x2a)" * (cast_expression "(short *)((int)puVar2 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x2a)" ( (binary_expression "(int)puVar2 + 0x2a" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" { (expression_statement "puVar18 = (undefined4 *)puVar2[1];" (assignment_expression "puVar18 = (undefined4 *)puVar2[1]" identifier = (cast_expression "(undefined4 *)puVar2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;" statement_identifier : (expression_statement "pbVar10 = (byte *)*puVar18;" (assignment_expression "pbVar10 = (byte *)*puVar18" identifier = (cast_expression "(byte *)*puVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar18" * identifier))) ;)) (expression_statement "pbVar14 = *(byte **)(pcVar15 + 8);" (assignment_expression "pbVar14 = *(byte **)(pcVar15 + 8)" identifier = (pointer_expression "*(byte **)(pcVar15 + 8)" * (cast_expression "(byte **)(pcVar15 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 8)" ( (binary_expression "pcVar15 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );" do (compound_statement "{\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" { (expression_statement "uVar9 = (uint)*pbVar14;" (assignment_expression "uVar9 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" if (parenthesized_expression "(uVar9 == *pbVar10)" ( (binary_expression "uVar9 == *pbVar10" identifier == (pointer_expression "*pbVar10" * identifier)) )) (compound_statement "{\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }" { (if_statement "if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }" { (expression_statement "uVar5 = *(ushort *)(puVar18 + 4);" (assignment_expression "uVar5 = *(ushort *)(puVar18 + 4)" identifier = (pointer_expression "*(ushort *)(puVar18 + 4)" * (cast_expression "(ushort *)(puVar18 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(puVar18 + 4) = uVar5 | 1;" (assignment_expression "*(ushort *)(puVar18 + 4) = uVar5 | 1" (pointer_expression "*(ushort *)(puVar18 + 4)" * (cast_expression "(ushort *)(puVar18 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) (expression_statement "local_2c = puVar18;" (assignment_expression "local_2c = puVar18" identifier = identifier) ;) (if_statement "if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }" if (parenthesized_expression "((uVar5 & 0x60) != 0)" ( (binary_expression "(uVar5 & 0x60) != 0" (parenthesized_expression "(uVar5 & 0x60)" ( (binary_expression "uVar5 & 0x60" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }" { (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xc58f);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xc58f)" identifier (argument_list "(iVar6,unaff_EDI + 0xc58f)" ( identifier , (binary_expression "unaff_EDI + 0xc58f" identifier + number_literal) ))) ;) })) (goto_statement "goto LAB_000c7caf;" goto statement_identifier ;) })) }) (else_clause "else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" else (if_statement "if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10))" ( (binary_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar9)" ( (binary_expression "unaff_EDI + 0x14ae7 + uVar9" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + identifier) )))) != (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" ( (binary_expression "unaff_EDI + 0x14ae7 + (uint)*pbVar10" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) )) (goto_statement "goto LAB_000c7f08;" goto statement_identifier ;)))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) }) (else_clause "else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" else (if_statement "if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" if (parenthesized_expression "(cVar11 == 'o')" ( (binary_expression "cVar11 == 'o'" identifier == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }" { (if_statement "if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }" if (parenthesized_expression "(**(char **)(pcVar15 + 0xc) == 's')" ( (binary_expression "**(char **)(pcVar15 + 0xc) == 's'" (pointer_expression "**(char **)(pcVar15 + 0xc)" * (pointer_expression "*(char **)(pcVar15 + 0xc)" * (cast_expression "(char **)(pcVar15 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) ))))) == (char_literal "'s'" ' character ')) )) (compound_statement "{\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }" { (expression_statement "**(char **)(pcVar15 + 0xc) = ';';" (assignment_expression "**(char **)(pcVar15 + 0xc) = ';'" (pointer_expression "**(char **)(pcVar15 + 0xc)" * (pointer_expression "*(char **)(pcVar15 + 0xc)" * (cast_expression "(char **)(pcVar15 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) ))))) = (char_literal "';'" ' character ')) ;) (expression_statement "cVar11 = *pcVar15;" (assignment_expression "cVar11 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (goto_statement "goto LAB_000c7ca6;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" else (compound_statement "{\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" { (labeled_statement "LAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;" statement_identifier : (if_statement "if (cVar11 == ';') goto LAB_000c7e93;" if (parenthesized_expression "(cVar11 == ';')" ( (binary_expression "cVar11 == ';'" identifier == (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_000c7e93;" goto statement_identifier ;))) }))))) (labeled_statement "LAB_000c7caf:\n          local_50 = local_50 + 1;" statement_identifier : (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;)) (expression_statement "local_4c = local_4c + 4;" (assignment_expression "local_4c = local_4c + 4" identifier = (binary_expression "local_4c + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != local_50)" ( (binary_expression "iVar8 != local_50" identifier != identifier) )) ;) (if_statement "if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }" if (parenthesized_expression "((iVar8 == 1) && (local_2c != (undefined4 *)0x0))" ( (binary_expression "(iVar8 == 1) && (local_2c != (undefined4 *)0x0)" (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_2c != (undefined4 *)0x0)" ( (binary_expression "local_2c != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }" { (expression_statement "uVar5 = *(ushort *)(local_2c + 4);" (assignment_expression "uVar5 = *(ushort *)(local_2c + 4)" identifier = (pointer_expression "*(ushort *)(local_2c + 4)" * (cast_expression "(ushort *)(local_2c + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000c7cde;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_000c7e20;" goto statement_identifier ;) })) (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2)" identifier (argument_list "(iVar6,unaff_EDI + 0xe0f3,*puVar2)" ( identifier , (binary_expression "unaff_EDI + 0xe0f3" identifier + number_literal) , (pointer_expression "*puVar2" * identifier) ))) ;) })) (goto_statement "goto joined_r0x000c7e74;" goto statement_identifier ;) (labeled_statement "LAB_000c7f08:\n  iVar17 = iVar17 + 1;" statement_identifier : (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;)) (expression_statement "puVar18 = puVar18 + 5;" (assignment_expression "puVar18 = puVar18 + 5" identifier = (binary_expression "puVar18 + 5" identifier + number_literal)) ;) (if_statement "if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;" if (parenthesized_expression "(iVar17 == *(short *)((int)puVar2 + 0x2a))" ( (binary_expression "iVar17 == *(short *)((int)puVar2 + 0x2a)" identifier == (pointer_expression "*(short *)((int)puVar2 + 0x2a)" * (cast_expression "(short *)((int)puVar2 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x2a)" ( (binary_expression "(int)puVar2 + 0x2a" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_000c7caf;" goto statement_identifier ;)) (goto_statement "goto LAB_000c7eb8;" goto statement_identifier ;) (labeled_statement "code_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }" statement_identifier : (if_statement "if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }" if (parenthesized_expression "(param_2 != 1)" ( (binary_expression "param_2 != 1" identifier != number_literal) )) (compound_statement "{\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }" { (expression_statement "uVar9 = param_1 << 3 | puVar2[9];" (assignment_expression "uVar9 = param_1 << 3 | puVar2[9]" identifier = (binary_expression "param_1 << 3 | puVar2[9]" (binary_expression "param_1 << 3" identifier << number_literal) | (subscript_expression "puVar2[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = (undefined2)iVar17;" (assignment_expression "uVar16 = (undefined2)iVar17" identifier = (cast_expression "(undefined2)iVar17" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "local_28 = (undefined1)extraout_ECX;" (assignment_expression "local_28 = (undefined1)extraout_ECX" identifier = (cast_expression "(undefined1)extraout_ECX" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }" if (parenthesized_expression "(*(byte *)(iVar6 + 0xcc) < 2)" ( (binary_expression "*(byte *)(iVar6 + 0xcc) < 2" (pointer_expression "*(byte *)(iVar6 + 0xcc)" * (cast_expression "(byte *)(iVar6 + 0xcc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xcc)" ( (binary_expression "iVar6 + 0xcc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }" { (expression_statement "*(undefined2 *)(puVar2 + 10) = uVar16;" (assignment_expression "*(undefined2 *)(puVar2 + 10) = uVar16" (pointer_expression "*(undefined2 *)(puVar2 + 10)" * (cast_expression "(undefined2 *)(puVar2 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 10)" ( (binary_expression "puVar2 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[9] = uVar9;" (assignment_expression "puVar2[9] = uVar9" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar2 + 0x32) = local_28;" (assignment_expression "*(undefined1 *)((int)puVar2 + 0x32) = local_28" (pointer_expression "*(undefined1 *)((int)puVar2 + 0x32)" * (cast_expression "(undefined1 *)((int)puVar2 + 0x32)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x32)" ( (binary_expression "(int)puVar2 + 0x32" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (piVar12 == (int *)0x0) {\n        return;\n      }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }" else (compound_statement "{\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }" { (if_statement "if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }" { (expression_statement "*(undefined2 *)(puVar2 + 10) = uVar16;" (assignment_expression "*(undefined2 *)(puVar2 + 10) = uVar16" (pointer_expression "*(undefined2 *)(puVar2 + 10)" * (cast_expression "(undefined2 *)(puVar2 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 10)" ( (binary_expression "puVar2 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[9] = uVar9;" (assignment_expression "puVar2[9] = uVar9" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar2 + 0x32) = local_28;" (assignment_expression "*(undefined1 *)((int)puVar2 + 0x32) = local_28" (pointer_expression "*(undefined1 *)((int)puVar2 + 0x32)" * (cast_expression "(undefined1 *)((int)puVar2 + 0x32)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x32)" ( (binary_expression "(int)puVar2 + 0x32" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (for_statement "for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }" for ( (assignment_expression "iVar17 = piVar12[1]" identifier = (subscript_expression "piVar12[1]" identifier [ number_literal ])) ; (parenthesized_expression "(iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0))" ( (binary_expression "iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0)" (binary_expression "iVar17 != 0" identifier != number_literal) && (parenthesized_expression "((*(byte *)(iVar17 + 5) & 0x10) != 0)" ( (binary_expression "(*(byte *)(iVar17 + 5) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar17 + 5) & 0x10)" ( (binary_expression "*(byte *)(iVar17 + 5) & 0x10" (pointer_expression "*(byte *)(iVar17 + 5)" * (cast_expression "(byte *)(iVar17 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 5)" ( (binary_expression "iVar17 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ; (assignment_expression "iVar17 = *(int *)(iVar17 + 0xc)" identifier = (pointer_expression "*(int *)(iVar17 + 0xc)" * (cast_expression "(int *)(iVar17 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n      }" { })) (for_statement "for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }" for ( (assignment_expression "piVar3 = *(int **)(iVar6 + 0x114)" identifier = (pointer_expression "*(int **)(iVar6 + 0x114)" * (cast_expression "(int **)(iVar6 + 0x114)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x114)" ( (binary_expression "iVar6 + 0x114" identifier + number_literal) ))))) ; (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar3 = (int *)piVar3[3]" identifier = (cast_expression "(int *)piVar3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[3]" identifier [ number_literal ]))) ) (compound_statement "{\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }" { (if_statement "if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }" if (parenthesized_expression "(iVar17 == *piVar3)" ( (binary_expression "iVar17 == *piVar3" identifier == (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }" { (expression_statement "*piVar3 = (int)(puVar2 + 10);" (assignment_expression "*piVar3 = (int)(puVar2 + 10)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(puVar2 + 10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar2 + 10)" ( (binary_expression "puVar2 + 10" identifier + number_literal) )))) ;) (break_statement "break;" break ;) })) })) (expression_statement "*(undefined2 *)(puVar2 + 10) = uVar16;" (assignment_expression "*(undefined2 *)(puVar2 + 10) = uVar16" (pointer_expression "*(undefined2 *)(puVar2 + 10)" * (cast_expression "(undefined2 *)(puVar2 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 10)" ( (binary_expression "puVar2 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[9] = uVar9;" (assignment_expression "puVar2[9] = uVar9" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar2 + 0x32) = local_28;" (assignment_expression "*(undefined1 *)((int)puVar2 + 0x32) = local_28" (pointer_expression "*(undefined1 *)((int)puVar2 + 0x32)" * (cast_expression "(undefined1 *)((int)puVar2 + 0x32)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x32)" ( (binary_expression "(int)puVar2 + 0x32" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }))) (expression_statement "cVar11 = (char)piVar12[3];" (assignment_expression "cVar11 = (char)piVar12[3]" identifier = (cast_expression "(char)piVar12[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar12[3]" identifier [ number_literal ]))) ;) (expression_statement "*(char *)(iVar6 + 0xca) = cVar11;" (assignment_expression "*(char *)(iVar6 + 0xca) = cVar11" (pointer_expression "*(char *)(iVar6 + 0xca)" * (cast_expression "(char *)(iVar6 + 0xca)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xca)" ( (binary_expression "iVar6 + 0xca" identifier + number_literal) )))) = identifier) ;) (if_statement "if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }" if (parenthesized_expression "(0 < *piVar12)" ( (binary_expression "0 < *piVar12" number_literal < (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (if_statement "if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }" if (parenthesized_expression "((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)piVar12 + 0xd) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar12 + 0xd) & 0x20)" ( (binary_expression "*(byte *)((int)piVar12 + 0xd) & 0x20" (pointer_expression "*(byte *)((int)piVar12 + 0xd)" * (cast_expression "(byte *)((int)piVar12 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0xd)" ( (binary_expression "(int)piVar12 + 0xd" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }" { (do_statement "do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);" do (compound_statement "{\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (if_statement "if (*piVar12 == iVar17) goto LAB_000c7e08;" if (parenthesized_expression "(*piVar12 == iVar17)" ( (binary_expression "*piVar12 == iVar17" (pointer_expression "*piVar12" * identifier) == identifier) )) (goto_statement "goto LAB_000c7e08;" goto statement_identifier ;)) }) while (parenthesized_expression "((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20)" ( (binary_expression "*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20" (pointer_expression "*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd)" * (cast_expression "(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + iVar17 * 0x10 + 0xd)" ( (binary_expression "(int)piVar12 + iVar17 * 0x10 + 0xd" (binary_expression "(int)piVar12 + iVar17 * 0x10" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar17 * 0x10" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) ;) (expression_statement "cVar11 = (char)piVar12[iVar17 * 4 + 3];" (assignment_expression "cVar11 = (char)piVar12[iVar17 * 4 + 3]" identifier = (cast_expression "(char)piVar12[iVar17 * 4 + 3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar12[iVar17 * 4 + 3]" identifier [ (binary_expression "iVar17 * 4 + 3" (binary_expression "iVar17 * 4" identifier * number_literal) + number_literal) ]))) ;) })) (if_statement "if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }" if (parenthesized_expression "((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03'))" ( (binary_expression "(cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')" (parenthesized_expression "(cVar11 == '\0')" ( (binary_expression "cVar11 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')" ( (comma_expression "iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03'" (assignment_expression "iVar17 = unaff_EDI + 0x9c41" identifier = (binary_expression "unaff_EDI + 0x9c41" identifier + number_literal)) , (binary_expression "cVar11 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence '))) ))) )) (compound_statement "{\n        iVar17 = unaff_EDI + 0x9c3b;\n      }" { (expression_statement "iVar17 = unaff_EDI + 0x9c3b;" (assignment_expression "iVar17 = unaff_EDI + 0x9c3b" identifier = (binary_expression "unaff_EDI + 0x9c3b" identifier + number_literal)) ;) })) (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17)" identifier (argument_list "(iVar6,unaff_EDI + 0x9c46,iVar17)" ( identifier , (binary_expression "unaff_EDI + 0x9c46" identifier + number_literal) , identifier ))) ;) })) (goto_statement "goto LAB_000c7e08;" goto statement_identifier ;) }))) (labeled_statement "LAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }" statement_identifier : (if_statement "if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }" { (expression_statement "FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);" (call_expression "FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2)" identifier (argument_list "(0,piVar12,extraout_ECX,0,0,param_2,0,2)" ( number_literal , identifier , identifier , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (return_statement "return;" return ;) }))) (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xe11f);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xe11f)" identifier (argument_list "(iVar6,unaff_EDI + 0xe11f)" ( identifier , (binary_expression "unaff_EDI + 0xe11f" identifier + number_literal) ))) ;) (labeled_statement "joined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }" statement_identifier : (if_statement "if (piVar12 == (int *)0x0) {\n    return;\n  }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (labeled_statement "LAB_000c7e08:\n  FUN_00054000();" statement_identifier : (expression_statement "FUN_00054000();" (call_expression "FUN_00054000()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void sqlite3AddPrimaryKey(Parse *pParse,ExprList *pList,int onError,int autoInc,int sortOrder)\n\n{\n  ushort uVar1;\n  Table *pTVar2;\n  Expr *pEVar3;\n  RenameToken *pRVar4;\n  code *pcVar5;\n  ushort uVar6;\n  Parse *pParse_00;\n  size_t sVar7;\n  int iVar8;\n  Token *pName2;\n  uint uVar9;\n  byte *pbVar10;\n  u8 uVar11;\n  ExprList *pList_00;\n  uint uVar12;\n  byte *pbVar13;\n  char *pcVar14;\n  i16 iVar15;\n  int iVar16;\n  Column *pCVar17;\n  int unaff_EDI;\n  undefined8 uVar18;\n  int in_stack_ffffffa4;\n  int in_stack_ffffffa8;\n  u8 in_stack_ffffffac;\n  int local_50;\n  ExprList_item *local_4c;\n  Column *local_2c;\n  u8 local_28;\n  \n  uVar18 = __x86_get_pc_thunk_di();\n  pList_00 = (ExprList *)((ulonglong)uVar18 >> 0x20);\n  pParse_00 = (Parse *)uVar18;\n  pTVar2 = pParse_00->pNewTable;\n  if (pTVar2 != (Table *)0x0) {\n    if ((pTVar2->tabFlags & 4) == 0) {\n      pTVar2->tabFlags = pTVar2->tabFlags | 4;\n      if (pList_00 == (ExprList *)0x0) {\n        iVar16 = pTVar2->nCol + -1;\n        local_2c = pTVar2->aCol + iVar16;\n        uVar1 = local_2c->colFlags;\n        uVar6 = uVar1 | 1;\n        local_2c->colFlags = uVar6;\n        if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }\nLAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = pList_00->nExpr;\n      if (0 < iVar8) {\n        local_4c = pList_00->a;\n        local_50 = 0;\n        iVar16 = -1;\n        local_2c = (Column *)0x0;\n        do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe0f3),pTVar2->zName);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar16 = iVar16 + 1;\n  pCVar17 = pCVar17 + 1;\n  if (iVar16 == pTVar2->nCol) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (pList != (ExprList *)&DAT_00000001) {\n    uVar9 = (int)pParse << 3 | pTVar2->tabFlags;\n    iVar15 = (i16)iVar16;\n    local_28 = (u8)pName2;\n    if (pParse_00->eParseMode < 2) {\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n      if (pList_00 == (ExprList *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }\n      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }\n      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n    }\n    uVar11 = pList_00->a[0].sortFlags;\n    pParse_00->iPkSortOrder = uVar11;\n    if (0 < pList_00->nExpr) {\n      iVar16 = 0;\n      if ((pList_00->a[0].field_0x9 & 0x20) == 0) {\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }\n      if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {\n        iVar16 = unaff_EDI + 0x9c3b;\n      }\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (pParse == (Parse *)0x0) {\n    sqlite3CreateIndex((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,\n                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,\n                       in_stack_ffffffac);\n    return;\n  }\n  sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe11f));\njoined_r0x000c7e74:\n  if (pList_00 == (ExprList *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  exprListDeleteNN(pParse_00->db,pList_00);\n  return;\n}\n\n" (function_definition "void sqlite3AddPrimaryKey(Parse *pParse,ExprList *pList,int onError,int autoInc,int sortOrder)\n\n{\n  ushort uVar1;\n  Table *pTVar2;\n  Expr *pEVar3;\n  RenameToken *pRVar4;\n  code *pcVar5;\n  ushort uVar6;\n  Parse *pParse_00;\n  size_t sVar7;\n  int iVar8;\n  Token *pName2;\n  uint uVar9;\n  byte *pbVar10;\n  u8 uVar11;\n  ExprList *pList_00;\n  uint uVar12;\n  byte *pbVar13;\n  char *pcVar14;\n  i16 iVar15;\n  int iVar16;\n  Column *pCVar17;\n  int unaff_EDI;\n  undefined8 uVar18;\n  int in_stack_ffffffa4;\n  int in_stack_ffffffa8;\n  u8 in_stack_ffffffac;\n  int local_50;\n  ExprList_item *local_4c;\n  Column *local_2c;\n  u8 local_28;\n  \n  uVar18 = __x86_get_pc_thunk_di();\n  pList_00 = (ExprList *)((ulonglong)uVar18 >> 0x20);\n  pParse_00 = (Parse *)uVar18;\n  pTVar2 = pParse_00->pNewTable;\n  if (pTVar2 != (Table *)0x0) {\n    if ((pTVar2->tabFlags & 4) == 0) {\n      pTVar2->tabFlags = pTVar2->tabFlags | 4;\n      if (pList_00 == (ExprList *)0x0) {\n        iVar16 = pTVar2->nCol + -1;\n        local_2c = pTVar2->aCol + iVar16;\n        uVar1 = local_2c->colFlags;\n        uVar6 = uVar1 | 1;\n        local_2c->colFlags = uVar6;\n        if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }\nLAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = pList_00->nExpr;\n      if (0 < iVar8) {\n        local_4c = pList_00->a;\n        local_50 = 0;\n        iVar16 = -1;\n        local_2c = (Column *)0x0;\n        do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe0f3),pTVar2->zName);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar16 = iVar16 + 1;\n  pCVar17 = pCVar17 + 1;\n  if (iVar16 == pTVar2->nCol) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (pList != (ExprList *)&DAT_00000001) {\n    uVar9 = (int)pParse << 3 | pTVar2->tabFlags;\n    iVar15 = (i16)iVar16;\n    local_28 = (u8)pName2;\n    if (pParse_00->eParseMode < 2) {\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n      if (pList_00 == (ExprList *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }\n      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }\n      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n    }\n    uVar11 = pList_00->a[0].sortFlags;\n    pParse_00->iPkSortOrder = uVar11;\n    if (0 < pList_00->nExpr) {\n      iVar16 = 0;\n      if ((pList_00->a[0].field_0x9 & 0x20) == 0) {\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }\n      if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {\n        iVar16 = unaff_EDI + 0x9c3b;\n      }\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (pParse == (Parse *)0x0) {\n    sqlite3CreateIndex((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,\n                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,\n                       in_stack_ffffffac);\n    return;\n  }\n  sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe11f));\njoined_r0x000c7e74:\n  if (pList_00 == (ExprList *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  exprListDeleteNN(pParse_00->db,pList_00);\n  return;\n}" primitive_type (function_declarator "sqlite3AddPrimaryKey(Parse *pParse,ExprList *pList,int onError,int autoInc,int sortOrder)" identifier (parameter_list "(Parse *pParse,ExprList *pList,int onError,int autoInc,int sortOrder)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "ExprList *pList" type_identifier (pointer_declarator "*pList" * identifier)) , (parameter_declaration "int onError" primitive_type identifier) , (parameter_declaration "int autoInc" primitive_type identifier) , (parameter_declaration "int sortOrder" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  Table *pTVar2;\n  Expr *pEVar3;\n  RenameToken *pRVar4;\n  code *pcVar5;\n  ushort uVar6;\n  Parse *pParse_00;\n  size_t sVar7;\n  int iVar8;\n  Token *pName2;\n  uint uVar9;\n  byte *pbVar10;\n  u8 uVar11;\n  ExprList *pList_00;\n  uint uVar12;\n  byte *pbVar13;\n  char *pcVar14;\n  i16 iVar15;\n  int iVar16;\n  Column *pCVar17;\n  int unaff_EDI;\n  undefined8 uVar18;\n  int in_stack_ffffffa4;\n  int in_stack_ffffffa8;\n  u8 in_stack_ffffffac;\n  int local_50;\n  ExprList_item *local_4c;\n  Column *local_2c;\n  u8 local_28;\n  \n  uVar18 = __x86_get_pc_thunk_di();\n  pList_00 = (ExprList *)((ulonglong)uVar18 >> 0x20);\n  pParse_00 = (Parse *)uVar18;\n  pTVar2 = pParse_00->pNewTable;\n  if (pTVar2 != (Table *)0x0) {\n    if ((pTVar2->tabFlags & 4) == 0) {\n      pTVar2->tabFlags = pTVar2->tabFlags | 4;\n      if (pList_00 == (ExprList *)0x0) {\n        iVar16 = pTVar2->nCol + -1;\n        local_2c = pTVar2->aCol + iVar16;\n        uVar1 = local_2c->colFlags;\n        uVar6 = uVar1 | 1;\n        local_2c->colFlags = uVar6;\n        if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }\nLAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = pList_00->nExpr;\n      if (0 < iVar8) {\n        local_4c = pList_00->a;\n        local_50 = 0;\n        iVar16 = -1;\n        local_2c = (Column *)0x0;\n        do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe0f3),pTVar2->zName);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar16 = iVar16 + 1;\n  pCVar17 = pCVar17 + 1;\n  if (iVar16 == pTVar2->nCol) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (pList != (ExprList *)&DAT_00000001) {\n    uVar9 = (int)pParse << 3 | pTVar2->tabFlags;\n    iVar15 = (i16)iVar16;\n    local_28 = (u8)pName2;\n    if (pParse_00->eParseMode < 2) {\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n      if (pList_00 == (ExprList *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }\n      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }\n      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n    }\n    uVar11 = pList_00->a[0].sortFlags;\n    pParse_00->iPkSortOrder = uVar11;\n    if (0 < pList_00->nExpr) {\n      iVar16 = 0;\n      if ((pList_00->a[0].field_0x9 & 0x20) == 0) {\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }\n      if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {\n        iVar16 = unaff_EDI + 0x9c3b;\n      }\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (pParse == (Parse *)0x0) {\n    sqlite3CreateIndex((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,\n                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,\n                       in_stack_ffffffac);\n    return;\n  }\n  sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe11f));\njoined_r0x000c7e74:\n  if (pList_00 == (ExprList *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  exprListDeleteNN(pParse_00->db,pList_00);\n  return;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "Table *pTVar2;" type_identifier (pointer_declarator "*pTVar2" * identifier) ;) (declaration "Expr *pEVar3;" type_identifier (pointer_declarator "*pEVar3" * identifier) ;) (declaration "RenameToken *pRVar4;" type_identifier (pointer_declarator "*pRVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "ushort uVar6;" type_identifier identifier ;) (declaration "Parse *pParse_00;" type_identifier (pointer_declarator "*pParse_00" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "Token *pName2;" type_identifier (pointer_declarator "*pName2" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "u8 uVar11;" type_identifier identifier ;) (declaration "ExprList *pList_00;" type_identifier (pointer_declarator "*pList_00" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "i16 iVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "Column *pCVar17;" type_identifier (pointer_declarator "*pCVar17" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar18;" type_identifier identifier ;) (declaration "int in_stack_ffffffa4;" primitive_type identifier ;) (declaration "int in_stack_ffffffa8;" primitive_type identifier ;) (declaration "u8 in_stack_ffffffac;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "ExprList_item *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "Column *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "u8 local_28;" type_identifier identifier ;) (expression_statement "uVar18 = __x86_get_pc_thunk_di();" (assignment_expression "uVar18 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "pList_00 = (ExprList *)((ulonglong)uVar18 >> 0x20);" (assignment_expression "pList_00 = (ExprList *)((ulonglong)uVar18 >> 0x20)" identifier = (cast_expression "(ExprList *)((ulonglong)uVar18 >> 0x20)" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar18 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pParse_00 = (Parse *)uVar18;" (assignment_expression "pParse_00 = (Parse *)uVar18" identifier = (cast_expression "(Parse *)uVar18" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pTVar2 = pParse_00->pNewTable;" (assignment_expression "pTVar2 = pParse_00->pNewTable" identifier = (field_expression "pParse_00->pNewTable" identifier -> field_identifier)) ;) (if_statement "if (pTVar2 != (Table *)0x0) {\n    if ((pTVar2->tabFlags & 4) == 0) {\n      pTVar2->tabFlags = pTVar2->tabFlags | 4;\n      if (pList_00 == (ExprList *)0x0) {\n        iVar16 = pTVar2->nCol + -1;\n        local_2c = pTVar2->aCol + iVar16;\n        uVar1 = local_2c->colFlags;\n        uVar6 = uVar1 | 1;\n        local_2c->colFlags = uVar6;\n        if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }\nLAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = pList_00->nExpr;\n      if (0 < iVar8) {\n        local_4c = pList_00->a;\n        local_50 = 0;\n        iVar16 = -1;\n        local_2c = (Column *)0x0;\n        do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe0f3),pTVar2->zName);\n  }" if (parenthesized_expression "(pTVar2 != (Table *)0x0)" ( (binary_expression "pTVar2 != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((pTVar2->tabFlags & 4) == 0) {\n      pTVar2->tabFlags = pTVar2->tabFlags | 4;\n      if (pList_00 == (ExprList *)0x0) {\n        iVar16 = pTVar2->nCol + -1;\n        local_2c = pTVar2->aCol + iVar16;\n        uVar1 = local_2c->colFlags;\n        uVar6 = uVar1 | 1;\n        local_2c->colFlags = uVar6;\n        if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }\nLAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = pList_00->nExpr;\n      if (0 < iVar8) {\n        local_4c = pList_00->a;\n        local_50 = 0;\n        iVar16 = -1;\n        local_2c = (Column *)0x0;\n        do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe0f3),pTVar2->zName);\n  }" { (if_statement "if ((pTVar2->tabFlags & 4) == 0) {\n      pTVar2->tabFlags = pTVar2->tabFlags | 4;\n      if (pList_00 == (ExprList *)0x0) {\n        iVar16 = pTVar2->nCol + -1;\n        local_2c = pTVar2->aCol + iVar16;\n        uVar1 = local_2c->colFlags;\n        uVar6 = uVar1 | 1;\n        local_2c->colFlags = uVar6;\n        if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }\nLAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = pList_00->nExpr;\n      if (0 < iVar8) {\n        local_4c = pList_00->a;\n        local_50 = 0;\n        iVar16 = -1;\n        local_2c = (Column *)0x0;\n        do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }" if (parenthesized_expression "((pTVar2->tabFlags & 4) == 0)" ( (binary_expression "(pTVar2->tabFlags & 4) == 0" (parenthesized_expression "(pTVar2->tabFlags & 4)" ( (binary_expression "pTVar2->tabFlags & 4" (field_expression "pTVar2->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      pTVar2->tabFlags = pTVar2->tabFlags | 4;\n      if (pList_00 == (ExprList *)0x0) {\n        iVar16 = pTVar2->nCol + -1;\n        local_2c = pTVar2->aCol + iVar16;\n        uVar1 = local_2c->colFlags;\n        uVar6 = uVar1 | 1;\n        local_2c->colFlags = uVar6;\n        if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }\nLAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = pList_00->nExpr;\n      if (0 < iVar8) {\n        local_4c = pList_00->a;\n        local_50 = 0;\n        iVar16 = -1;\n        local_2c = (Column *)0x0;\n        do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }" { (expression_statement "pTVar2->tabFlags = pTVar2->tabFlags | 4;" (assignment_expression "pTVar2->tabFlags = pTVar2->tabFlags | 4" (field_expression "pTVar2->tabFlags" identifier -> field_identifier) = (binary_expression "pTVar2->tabFlags | 4" (field_expression "pTVar2->tabFlags" identifier -> field_identifier) | number_literal)) ;) (if_statement "if (pList_00 == (ExprList *)0x0) {\n        iVar16 = pTVar2->nCol + -1;\n        local_2c = pTVar2->aCol + iVar16;\n        uVar1 = local_2c->colFlags;\n        uVar6 = uVar1 | 1;\n        local_2c->colFlags = uVar6;\n        if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }\nLAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }" if (parenthesized_expression "(pList_00 == (ExprList *)0x0)" ( (binary_expression "pList_00 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar16 = pTVar2->nCol + -1;\n        local_2c = pTVar2->aCol + iVar16;\n        uVar1 = local_2c->colFlags;\n        uVar6 = uVar1 | 1;\n        local_2c->colFlags = uVar6;\n        if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }\nLAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }" { (expression_statement "iVar16 = pTVar2->nCol + -1;" (assignment_expression "iVar16 = pTVar2->nCol + -1" identifier = (binary_expression "pTVar2->nCol + -1" (field_expression "pTVar2->nCol" identifier -> field_identifier) + number_literal)) ;) (expression_statement "local_2c = pTVar2->aCol + iVar16;" (assignment_expression "local_2c = pTVar2->aCol + iVar16" identifier = (binary_expression "pTVar2->aCol + iVar16" (field_expression "pTVar2->aCol" identifier -> field_identifier) + identifier)) ;) (expression_statement "uVar1 = local_2c->colFlags;" (assignment_expression "uVar1 = local_2c->colFlags" identifier = (field_expression "local_2c->colFlags" identifier -> field_identifier)) ;) (expression_statement "uVar6 = uVar1 | 1;" (assignment_expression "uVar6 = uVar1 | 1" identifier = (binary_expression "uVar1 | 1" identifier | number_literal)) ;) (expression_statement "local_2c->colFlags = uVar6;" (assignment_expression "local_2c->colFlags = uVar6" (field_expression "local_2c->colFlags" identifier -> field_identifier) = identifier) ;) (if_statement "if ((uVar1 & 0x60) != 0) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }" if (parenthesized_expression "((uVar1 & 0x60) != 0)" ( (binary_expression "(uVar1 & 0x60) != 0" (parenthesized_expression "(uVar1 & 0x60)" ( (binary_expression "uVar1 & 0x60" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n          uVar6 = local_2c->colFlags;\n        }" { (expression_statement "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));" (call_expression "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f))" identifier (argument_list "(pParse_00,(char *)(unaff_EDI + 0xc58f))" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xc58f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc58f)" ( (binary_expression "unaff_EDI + 0xc58f" identifier + number_literal) ))) ))) ;) (expression_statement "uVar6 = local_2c->colFlags;" (assignment_expression "uVar6 = local_2c->colFlags" identifier = (field_expression "local_2c->colFlags" identifier -> field_identifier)) ;) })) (labeled_statement "LAB_000c7cde:\n        pcVar14 = (char *)(unaff_EDI + 0xa9b7);" statement_identifier : (expression_statement "pcVar14 = (char *)(unaff_EDI + 0xa9b7);" (assignment_expression "pcVar14 = (char *)(unaff_EDI + 0xa9b7)" identifier = (cast_expression "(char *)(unaff_EDI + 0xa9b7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xa9b7)" ( (binary_expression "unaff_EDI + 0xa9b7" identifier + number_literal) )))) ;)) (if_statement "if ((uVar6 & 4) != 0) {\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }" if (parenthesized_expression "((uVar6 & 4) != 0)" ( (binary_expression "(uVar6 & 4) != 0" (parenthesized_expression "(uVar6 & 4)" ( (binary_expression "uVar6 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          pcVar14 = local_2c->zName;\n          sVar7 = strlen(pcVar14);\n          pcVar14 = pcVar14 + sVar7 + 1;\n        }" { (expression_statement "pcVar14 = local_2c->zName;" (assignment_expression "pcVar14 = local_2c->zName" identifier = (field_expression "local_2c->zName" identifier -> field_identifier)) ;) (expression_statement "sVar7 = strlen(pcVar14);" (assignment_expression "sVar7 = strlen(pcVar14)" identifier = (call_expression "strlen(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (expression_statement "pcVar14 = pcVar14 + sVar7 + 1;" (assignment_expression "pcVar14 = pcVar14 + sVar7 + 1" identifier = (binary_expression "pcVar14 + sVar7 + 1" (binary_expression "pcVar14 + sVar7" identifier + identifier) + number_literal)) ;) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );" do (compound_statement "{\n          uVar12 = (uint)(byte)pcVar14[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        }" { (expression_statement "uVar12 = (uint)(byte)pcVar14[iVar8];" (assignment_expression "uVar12 = (uint)(byte)pcVar14[iVar8]" identifier = (cast_expression "(uint)(byte)pcVar14[iVar8]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar14[iVar8]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[iVar8]" identifier [ identifier ])))) ;) (expression_statement "uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);" (assignment_expression "uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b)" identifier = (binary_expression "(uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar8 + unaff_EDI + 0x9d2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + unaff_EDI + 0x9d2b)" ( (binary_expression "iVar8 + unaff_EDI + 0x9d2b" (binary_expression "iVar8 + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) (if_statement "if (uVar12 == uVar9) {\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" if (parenthesized_expression "(uVar12 == uVar9)" ( (binary_expression "uVar12 == uVar9" identifier == identifier) )) (compound_statement "{\n            if (uVar12 == 0) goto code_r0x000c7d34;\n          }" { (if_statement "if (uVar12 == 0) goto code_r0x000c7d34;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000c7d34;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" else (if_statement "if (*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  )" ( (binary_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar12) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)" (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar12)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar12)" ( (binary_expression "unaff_EDI + 0x14ae7 + uVar12" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + identifier) )))) != (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar9)" ( (binary_expression "unaff_EDI + 0x14ae7 + uVar9" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + identifier) ))))) )) (goto_statement "goto LAB_000c7e20;" goto statement_identifier ;)))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar8 = pList_00->nExpr;" (assignment_expression "iVar8 = pList_00->nExpr" identifier = (field_expression "pList_00->nExpr" identifier -> field_identifier)) ;) (if_statement "if (0 < iVar8) {\n        local_4c = pList_00->a;\n        local_50 = 0;\n        iVar16 = -1;\n        local_2c = (Column *)0x0;\n        do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }\n      }" if (parenthesized_expression "(0 < iVar8)" ( (binary_expression "0 < iVar8" number_literal < identifier) )) (compound_statement "{\n        local_4c = pList_00->a;\n        local_50 = 0;\n        iVar16 = -1;\n        local_2c = (Column *)0x0;\n        do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }\n      }" { (expression_statement "local_4c = pList_00->a;" (assignment_expression "local_4c = pList_00->a" identifier = (field_expression "pList_00->a" identifier -> field_identifier)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "local_2c = (Column *)0x0;" (assignment_expression "local_2c = (Column *)0x0" identifier = (cast_expression "(Column *)0x0" ( (type_descriptor "Column *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        } while (iVar8 != local_50);" do (compound_statement "{\n          pEVar3 = local_4c->pExpr;\n          while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }\n          uVar11 = pEVar3->op;\n          if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 1;\n        }" { (expression_statement "pEVar3 = local_4c->pExpr;" (assignment_expression "pEVar3 = local_4c->pExpr" identifier = (field_expression "local_4c->pExpr" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }\n            if ((pEVar3->flags & 0x1000) == 0) break;\n            pEVar3 = pEVar3->pLeft;\n          }" { (if_statement "if (pEVar3 == (Expr *)0x0) {\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }" if (parenthesized_expression "(pEVar3 == (Expr *)0x0)" ( (binary_expression "pEVar3 == (Expr *)0x0" identifier == (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Does not return */\n              pcVar5 = (code *)invalidInstructionException();\n              (*pcVar5)();\n            }" { comment (expression_statement "pcVar5 = (code *)invalidInstructionException();" (assignment_expression "pcVar5 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((pEVar3->flags & 0x1000) == 0) break;" if (parenthesized_expression "((pEVar3->flags & 0x1000) == 0)" ( (binary_expression "(pEVar3->flags & 0x1000) == 0" (parenthesized_expression "(pEVar3->flags & 0x1000)" ( (binary_expression "pEVar3->flags & 0x1000" (field_expression "pEVar3->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pEVar3 = pEVar3->pLeft;" (assignment_expression "pEVar3 = pEVar3->pLeft" identifier = (field_expression "pEVar3->pLeft" identifier -> field_identifier)) ;) })) (expression_statement "uVar11 = pEVar3->op;" (assignment_expression "uVar11 = pEVar3->op" identifier = (field_expression "pEVar3->op" identifier -> field_identifier)) ;) (if_statement "if (uVar11 == 's') {\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }\n          else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }" if (parenthesized_expression "(uVar11 == 's')" ( (binary_expression "uVar11 == 's'" identifier == (char_literal "'s'" ' character ')) )) (compound_statement "{\n            pEVar3->op = ';';\nLAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar16 = 0;\n          }" { (expression_statement "pEVar3->op = ';';" (assignment_expression "pEVar3->op = ';'" (field_expression "pEVar3->op" identifier -> field_identifier) = (char_literal "';'" ' character ')) ;) (labeled_statement "LAB_000c7e93:\n            if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" statement_identifier : (if_statement "if (0 < pTVar2->nCol) {\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" if (parenthesized_expression "(0 < pTVar2->nCol)" ( (binary_expression "0 < pTVar2->nCol" number_literal < (field_expression "pTVar2->nCol" identifier -> field_identifier)) )) (compound_statement "{\n              pCVar17 = pTVar2->aCol;\n              iVar16 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;\n              pbVar13 = (byte *)(pEVar3->u).zToken;\n              do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" { (expression_statement "pCVar17 = pTVar2->aCol;" (assignment_expression "pCVar17 = pTVar2->aCol" identifier = (field_expression "pTVar2->aCol" identifier -> field_identifier)) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000c7eb8:\n              pbVar10 = (byte *)pCVar17->zName;" statement_identifier : (expression_statement "pbVar10 = (byte *)pCVar17->zName;" (assignment_expression "pbVar10 = (byte *)pCVar17->zName" identifier = (cast_expression "(byte *)pCVar17->zName" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pCVar17->zName" identifier -> field_identifier))) ;)) (expression_statement "pbVar13 = (byte *)(pEVar3->u).zToken;" (assignment_expression "pbVar13 = (byte *)(pEVar3->u).zToken" identifier = (cast_expression "(byte *)(pEVar3->u).zToken" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pEVar3->u).zToken" (parenthesized_expression "(pEVar3->u)" ( (field_expression "pEVar3->u" identifier -> field_identifier) )) . field_identifier))) ;) (do_statement "do {\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );" do (compound_statement "{\n                uVar9 = (uint)*pbVar13;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar13 = pbVar13 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" { (expression_statement "uVar9 = (uint)*pbVar13;" (assignment_expression "uVar9 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" if (parenthesized_expression "(uVar9 == *pbVar10)" ( (binary_expression "uVar9 == *pbVar10" identifier == (pointer_expression "*pbVar10" * identifier)) )) (compound_statement "{\n                  if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }" { (if_statement "if (uVar9 == 0) {\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar6 = pCVar17->colFlags;\n                    pCVar17->colFlags = uVar6 | 1;\n                    local_2c = pCVar17;\n                    if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }\n                    goto LAB_000c7caf;\n                  }" { (expression_statement "uVar6 = pCVar17->colFlags;" (assignment_expression "uVar6 = pCVar17->colFlags" identifier = (field_expression "pCVar17->colFlags" identifier -> field_identifier)) ;) (expression_statement "pCVar17->colFlags = uVar6 | 1;" (assignment_expression "pCVar17->colFlags = uVar6 | 1" (field_expression "pCVar17->colFlags" identifier -> field_identifier) = (binary_expression "uVar6 | 1" identifier | number_literal)) ;) (expression_statement "local_2c = pCVar17;" (assignment_expression "local_2c = pCVar17" identifier = identifier) ;) (if_statement "if ((uVar6 & 0x60) != 0) {\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }" if (parenthesized_expression "((uVar6 & 0x60) != 0)" ( (binary_expression "(uVar6 & 0x60) != 0" (parenthesized_expression "(uVar6 & 0x60)" ( (binary_expression "uVar6 & 0x60" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));\n                    }" { (expression_statement "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f));" (call_expression "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xc58f))" identifier (argument_list "(pParse_00,(char *)(unaff_EDI + 0xc58f))" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xc58f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc58f)" ( (binary_expression "unaff_EDI + 0xc58f" identifier + number_literal) ))) ))) ;) })) (goto_statement "goto LAB_000c7caf;" goto statement_identifier ;) })) }) (else_clause "else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" else (if_statement "if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10))" ( (binary_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar9)" ( (binary_expression "unaff_EDI + 0x14ae7 + uVar9" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + identifier) )))) != (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" ( (binary_expression "unaff_EDI + 0x14ae7 + (uint)*pbVar10" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) )) (goto_statement "goto LAB_000c7f08;" goto statement_identifier ;)))) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }) (else_clause "else if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }" else (if_statement "if (uVar11 == 'o') {\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }" if (parenthesized_expression "(uVar11 == 'o')" ( (binary_expression "uVar11 == 'o'" identifier == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }\n          }" { (if_statement "if (pEVar3->pLeft->op == 's') {\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }" if (parenthesized_expression "(pEVar3->pLeft->op == 's')" ( (binary_expression "pEVar3->pLeft->op == 's'" (field_expression "pEVar3->pLeft->op" (field_expression "pEVar3->pLeft" identifier -> field_identifier) -> field_identifier) == (char_literal "'s'" ' character ')) )) (compound_statement "{\n              pEVar3->pLeft->op = ';';\n              uVar11 = pEVar3->op;\n              goto LAB_000c7ca6;\n            }" { (expression_statement "pEVar3->pLeft->op = ';';" (assignment_expression "pEVar3->pLeft->op = ';'" (field_expression "pEVar3->pLeft->op" (field_expression "pEVar3->pLeft" identifier -> field_identifier) -> field_identifier) = (char_literal "';'" ' character ')) ;) (expression_statement "uVar11 = pEVar3->op;" (assignment_expression "uVar11 = pEVar3->op" identifier = (field_expression "pEVar3->op" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000c7ca6;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }" else (compound_statement "{\nLAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;\n          }" { (labeled_statement "LAB_000c7ca6:\n            if (uVar11 == ';') goto LAB_000c7e93;" statement_identifier : (if_statement "if (uVar11 == ';') goto LAB_000c7e93;" if (parenthesized_expression "(uVar11 == ';')" ( (binary_expression "uVar11 == ';'" identifier == (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_000c7e93;" goto statement_identifier ;))) }))))) (labeled_statement "LAB_000c7caf:\n          local_50 = local_50 + 1;" statement_identifier : (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;)) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != local_50)" ( (binary_expression "iVar8 != local_50" identifier != identifier) )) ;) (if_statement "if ((iVar8 == 1) && (local_2c != (Column *)0x0)) {\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }" if (parenthesized_expression "((iVar8 == 1) && (local_2c != (Column *)0x0))" ( (binary_expression "(iVar8 == 1) && (local_2c != (Column *)0x0)" (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_2c != (Column *)0x0)" ( (binary_expression "local_2c != (Column *)0x0" identifier != (cast_expression "(Column *)0x0" ( (type_descriptor "Column *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          uVar6 = local_2c->colFlags;\n          goto LAB_000c7cde;\n        }" { (expression_statement "uVar6 = local_2c->colFlags;" (assignment_expression "uVar6 = local_2c->colFlags" identifier = (field_expression "local_2c->colFlags" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000c7cde;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_000c7e20;" goto statement_identifier ;) })) (expression_statement "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe0f3),pTVar2->zName);" (call_expression "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe0f3),pTVar2->zName)" identifier (argument_list "(pParse_00,(char *)(unaff_EDI + 0xe0f3),pTVar2->zName)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xe0f3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe0f3)" ( (binary_expression "unaff_EDI + 0xe0f3" identifier + number_literal) ))) , (field_expression "pTVar2->zName" identifier -> field_identifier) ))) ;) })) (goto_statement "goto joined_r0x000c7e74;" goto statement_identifier ;) (labeled_statement "LAB_000c7f08:\n  iVar16 = iVar16 + 1;" statement_identifier : (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;)) (expression_statement "pCVar17 = pCVar17 + 1;" (assignment_expression "pCVar17 = pCVar17 + 1" identifier = (binary_expression "pCVar17 + 1" identifier + number_literal)) ;) (if_statement "if (iVar16 == pTVar2->nCol) goto LAB_000c7caf;" if (parenthesized_expression "(iVar16 == pTVar2->nCol)" ( (binary_expression "iVar16 == pTVar2->nCol" identifier == (field_expression "pTVar2->nCol" identifier -> field_identifier)) )) (goto_statement "goto LAB_000c7caf;" goto statement_identifier ;)) (goto_statement "goto LAB_000c7eb8;" goto statement_identifier ;) (labeled_statement "code_r0x000c7d34:\n  if (pList != (ExprList *)&DAT_00000001) {\n    uVar9 = (int)pParse << 3 | pTVar2->tabFlags;\n    iVar15 = (i16)iVar16;\n    local_28 = (u8)pName2;\n    if (pParse_00->eParseMode < 2) {\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n      if (pList_00 == (ExprList *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }\n      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }\n      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n    }\n    uVar11 = pList_00->a[0].sortFlags;\n    pParse_00->iPkSortOrder = uVar11;\n    if (0 < pList_00->nExpr) {\n      iVar16 = 0;\n      if ((pList_00->a[0].field_0x9 & 0x20) == 0) {\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }\n      if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {\n        iVar16 = unaff_EDI + 0x9c3b;\n      }\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);\n    }\n    goto LAB_000c7e08;\n  }" statement_identifier : (if_statement "if (pList != (ExprList *)&DAT_00000001) {\n    uVar9 = (int)pParse << 3 | pTVar2->tabFlags;\n    iVar15 = (i16)iVar16;\n    local_28 = (u8)pName2;\n    if (pParse_00->eParseMode < 2) {\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n      if (pList_00 == (ExprList *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }\n      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }\n      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n    }\n    uVar11 = pList_00->a[0].sortFlags;\n    pParse_00->iPkSortOrder = uVar11;\n    if (0 < pList_00->nExpr) {\n      iVar16 = 0;\n      if ((pList_00->a[0].field_0x9 & 0x20) == 0) {\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }\n      if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {\n        iVar16 = unaff_EDI + 0x9c3b;\n      }\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);\n    }\n    goto LAB_000c7e08;\n  }" if (parenthesized_expression "(pList != (ExprList *)&DAT_00000001)" ( (binary_expression "pList != (ExprList *)&DAT_00000001" identifier != (cast_expression "(ExprList *)&DAT_00000001" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) )) (compound_statement "{\n    uVar9 = (int)pParse << 3 | pTVar2->tabFlags;\n    iVar15 = (i16)iVar16;\n    local_28 = (u8)pName2;\n    if (pParse_00->eParseMode < 2) {\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n      if (pList_00 == (ExprList *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }\n      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }\n      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n    }\n    uVar11 = pList_00->a[0].sortFlags;\n    pParse_00->iPkSortOrder = uVar11;\n    if (0 < pList_00->nExpr) {\n      iVar16 = 0;\n      if ((pList_00->a[0].field_0x9 & 0x20) == 0) {\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }\n      if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {\n        iVar16 = unaff_EDI + 0x9c3b;\n      }\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);\n    }\n    goto LAB_000c7e08;\n  }" { (expression_statement "uVar9 = (int)pParse << 3 | pTVar2->tabFlags;" (assignment_expression "uVar9 = (int)pParse << 3 | pTVar2->tabFlags" identifier = (binary_expression "(int)pParse << 3 | pTVar2->tabFlags" (binary_expression "(int)pParse << 3" (cast_expression "(int)pParse" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | (field_expression "pTVar2->tabFlags" identifier -> field_identifier))) ;) (expression_statement "iVar15 = (i16)iVar16;" (assignment_expression "iVar15 = (i16)iVar16" identifier = (cast_expression "(i16)iVar16" ( (type_descriptor "i16" type_identifier) ) identifier)) ;) (expression_statement "local_28 = (u8)pName2;" (assignment_expression "local_28 = (u8)pName2" identifier = (cast_expression "(u8)pName2" ( (type_descriptor "u8" type_identifier) ) identifier)) ;) (if_statement "if (pParse_00->eParseMode < 2) {\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n      if (pList_00 == (ExprList *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }\n      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }\n      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n    }" if (parenthesized_expression "(pParse_00->eParseMode < 2)" ( (binary_expression "pParse_00->eParseMode < 2" (field_expression "pParse_00->eParseMode" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n      if (pList_00 == (ExprList *)0x0) {\n        return;\n      }\n    }" { (expression_statement "pTVar2->iPKey = iVar15;" (assignment_expression "pTVar2->iPKey = iVar15" (field_expression "pTVar2->iPKey" identifier -> field_identifier) = identifier) ;) (expression_statement "pTVar2->tabFlags = uVar9;" (assignment_expression "pTVar2->tabFlags = uVar9" (field_expression "pTVar2->tabFlags" identifier -> field_identifier) = identifier) ;) (expression_statement "pTVar2->keyConf = local_28;" (assignment_expression "pTVar2->keyConf = local_28" (field_expression "pTVar2->keyConf" identifier -> field_identifier) = identifier) ;) (if_statement "if (pList_00 == (ExprList *)0x0) {\n        return;\n      }" if (parenthesized_expression "(pList_00 == (ExprList *)0x0)" ( (binary_expression "pList_00 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n      if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }\n      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }\n      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n    }" else (compound_statement "{\n      if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }\n      for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }\n      for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }\n      pTVar2->iPKey = iVar15;\n      pTVar2->tabFlags = uVar9;\n      pTVar2->keyConf = local_28;\n    }" { (if_statement "if (pList_00 == (ExprList *)0x0) {\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }" if (parenthesized_expression "(pList_00 == (ExprList *)0x0)" ( (binary_expression "pList_00 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pTVar2->iPKey = iVar15;\n        pTVar2->tabFlags = uVar9;\n        pTVar2->keyConf = local_28;\n        return;\n      }" { (expression_statement "pTVar2->iPKey = iVar15;" (assignment_expression "pTVar2->iPKey = iVar15" (field_expression "pTVar2->iPKey" identifier -> field_identifier) = identifier) ;) (expression_statement "pTVar2->tabFlags = uVar9;" (assignment_expression "pTVar2->tabFlags = uVar9" (field_expression "pTVar2->tabFlags" identifier -> field_identifier) = identifier) ;) (expression_statement "pTVar2->keyConf = local_28;" (assignment_expression "pTVar2->keyConf = local_28" (field_expression "pTVar2->keyConf" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })) (for_statement "for (pEVar3 = pList_00->a[0].pExpr; (pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))\n          ; pEVar3 = pEVar3->pLeft) {\n      }" for ( (assignment_expression "pEVar3 = pList_00->a[0].pExpr" identifier = (field_expression "pList_00->a[0].pExpr" (subscript_expression "pList_00->a[0]" (field_expression "pList_00->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ; (parenthesized_expression "(pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0))" ( (binary_expression "pEVar3 != (Expr *)0x0 && ((pEVar3->flags & 0x1000) != 0)" (binary_expression "pEVar3 != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((pEVar3->flags & 0x1000) != 0)" ( (binary_expression "(pEVar3->flags & 0x1000) != 0" (parenthesized_expression "(pEVar3->flags & 0x1000)" ( (binary_expression "pEVar3->flags & 0x1000" (field_expression "pEVar3->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) ; (assignment_expression "pEVar3 = pEVar3->pLeft" identifier = (field_expression "pEVar3->pLeft" identifier -> field_identifier)) ) (compound_statement "{\n      }" { })) (for_statement "for (pRVar4 = pParse_00->pRename; pRVar4 != (RenameToken *)0x0; pRVar4 = pRVar4->pNext) {\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }" for ( (assignment_expression "pRVar4 = pParse_00->pRename" identifier = (field_expression "pParse_00->pRename" identifier -> field_identifier)) ; (binary_expression "pRVar4 != (RenameToken *)0x0" identifier != (cast_expression "(RenameToken *)0x0" ( (type_descriptor "RenameToken *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pRVar4 = pRVar4->pNext" identifier = (field_expression "pRVar4->pNext" identifier -> field_identifier)) ) (compound_statement "{\n        if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }\n      }" { (if_statement "if (pEVar3 == (Expr *)pRVar4->p) {\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }" if (parenthesized_expression "(pEVar3 == (Expr *)pRVar4->p)" ( (binary_expression "pEVar3 == (Expr *)pRVar4->p" identifier == (cast_expression "(Expr *)pRVar4->p" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pRVar4->p" identifier -> field_identifier))) )) (compound_statement "{\n          pRVar4->p = &pTVar2->iPKey;\n          break;\n        }" { (expression_statement "pRVar4->p = &pTVar2->iPKey;" (assignment_expression "pRVar4->p = &pTVar2->iPKey" (field_expression "pRVar4->p" identifier -> field_identifier) = (pointer_expression "&pTVar2->iPKey" & (field_expression "pTVar2->iPKey" identifier -> field_identifier))) ;) (break_statement "break;" break ;) })) })) (expression_statement "pTVar2->iPKey = iVar15;" (assignment_expression "pTVar2->iPKey = iVar15" (field_expression "pTVar2->iPKey" identifier -> field_identifier) = identifier) ;) (expression_statement "pTVar2->tabFlags = uVar9;" (assignment_expression "pTVar2->tabFlags = uVar9" (field_expression "pTVar2->tabFlags" identifier -> field_identifier) = identifier) ;) (expression_statement "pTVar2->keyConf = local_28;" (assignment_expression "pTVar2->keyConf = local_28" (field_expression "pTVar2->keyConf" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "uVar11 = pList_00->a[0].sortFlags;" (assignment_expression "uVar11 = pList_00->a[0].sortFlags" identifier = (field_expression "pList_00->a[0].sortFlags" (subscript_expression "pList_00->a[0]" (field_expression "pList_00->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "pParse_00->iPkSortOrder = uVar11;" (assignment_expression "pParse_00->iPkSortOrder = uVar11" (field_expression "pParse_00->iPkSortOrder" identifier -> field_identifier) = identifier) ;) (if_statement "if (0 < pList_00->nExpr) {\n      iVar16 = 0;\n      if ((pList_00->a[0].field_0x9 & 0x20) == 0) {\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }\n      if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {\n        iVar16 = unaff_EDI + 0x9c3b;\n      }\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);\n    }" if (parenthesized_expression "(0 < pList_00->nExpr)" ( (binary_expression "0 < pList_00->nExpr" number_literal < (field_expression "pList_00->nExpr" identifier -> field_identifier)) )) (compound_statement "{\n      iVar16 = 0;\n      if ((pList_00->a[0].field_0x9 & 0x20) == 0) {\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }\n      if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {\n        iVar16 = unaff_EDI + 0x9c3b;\n      }\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (if_statement "if ((pList_00->a[0].field_0x9 & 0x20) == 0) {\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }" if (parenthesized_expression "((pList_00->a[0].field_0x9 & 0x20) == 0)" ( (binary_expression "(pList_00->a[0].field_0x9 & 0x20) == 0" (parenthesized_expression "(pList_00->a[0].field_0x9 & 0x20)" ( (binary_expression "pList_00->a[0].field_0x9 & 0x20" (field_expression "pList_00->a[0].field_0x9" (subscript_expression "pList_00->a[0]" (field_expression "pList_00->a" identifier -> field_identifier) [ number_literal ]) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);\n        uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;\n      }" { (do_statement "do {\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        } while (((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0);" do (compound_statement "{\n          iVar8 = iVar16;\n          if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;\n          iVar16 = iVar8 + 1;\n        }" { (expression_statement "iVar8 = iVar16;" (assignment_expression "iVar8 = iVar16" identifier = identifier) ;) (if_statement "if (pList_00->nExpr == iVar8 + 1) goto LAB_000c7e08;" if (parenthesized_expression "(pList_00->nExpr == iVar8 + 1)" ( (binary_expression "pList_00->nExpr == iVar8 + 1" (field_expression "pList_00->nExpr" identifier -> field_identifier) == (binary_expression "iVar8 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_000c7e08;" goto statement_identifier ;)) (expression_statement "iVar16 = iVar8 + 1;" (assignment_expression "iVar16 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0)" ( (binary_expression "((uint)pList_00[1].a[iVar8].zEName & 0x2000) == 0" (parenthesized_expression "((uint)pList_00[1].a[iVar8].zEName & 0x2000)" ( (binary_expression "(uint)pList_00[1].a[iVar8].zEName & 0x2000" (cast_expression "(uint)pList_00[1].a[iVar8].zEName" ( (type_descriptor "uint" type_identifier) ) (field_expression "pList_00[1].a[iVar8].zEName" (subscript_expression "pList_00[1].a[iVar8]" (field_expression "pList_00[1].a" (subscript_expression "pList_00[1]" identifier [ number_literal ]) . field_identifier) [ identifier ]) . field_identifier)) & number_literal) )) == number_literal) )) ;) (expression_statement "uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName;" (assignment_expression "uVar11 = *(u8 *)&pList_00[1].a[iVar8].zEName" identifier = (pointer_expression "*(u8 *)&pList_00[1].a[iVar8].zEName" * (cast_expression "(u8 *)&pList_00[1].a[iVar8].zEName" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pList_00[1].a[iVar8].zEName" & (field_expression "pList_00[1].a[iVar8].zEName" (subscript_expression "pList_00[1].a[iVar8]" (field_expression "pList_00[1].a" (subscript_expression "pList_00[1]" identifier [ number_literal ]) . field_identifier) [ identifier ]) . field_identifier))))) ;) })) (if_statement "if ((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')) {\n        iVar16 = unaff_EDI + 0x9c3b;\n      }" if (parenthesized_expression "((uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03'))" ( (binary_expression "(uVar11 == '\0') || (iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')" (parenthesized_expression "(uVar11 == '\0')" ( (binary_expression "uVar11 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03')" ( (comma_expression "iVar16 = unaff_EDI + 0x9c41, uVar11 == '\x03'" (assignment_expression "iVar16 = unaff_EDI + 0x9c41" identifier = (binary_expression "unaff_EDI + 0x9c41" identifier + number_literal)) , (binary_expression "uVar11 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence '))) ))) )) (compound_statement "{\n        iVar16 = unaff_EDI + 0x9c3b;\n      }" { (expression_statement "iVar16 = unaff_EDI + 0x9c3b;" (assignment_expression "iVar16 = unaff_EDI + 0x9c3b" identifier = (binary_expression "unaff_EDI + 0x9c3b" identifier + number_literal)) ;) })) (expression_statement "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16);" (call_expression "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16)" identifier (argument_list "(pParse_00,(char *)(unaff_EDI + 0x9c46),iVar16)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x9c46)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x9c46)" ( (binary_expression "unaff_EDI + 0x9c46" identifier + number_literal) ))) , identifier ))) ;) })) (goto_statement "goto LAB_000c7e08;" goto statement_identifier ;) }))) (labeled_statement "LAB_000c7e20:\n  if (pParse == (Parse *)0x0) {\n    sqlite3CreateIndex((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,\n                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,\n                       in_stack_ffffffac);\n    return;\n  }" statement_identifier : (if_statement "if (pParse == (Parse *)0x0) {\n    sqlite3CreateIndex((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,\n                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,\n                       in_stack_ffffffac);\n    return;\n  }" if (parenthesized_expression "(pParse == (Parse *)0x0)" ( (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3CreateIndex((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,\n                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,\n                       in_stack_ffffffac);\n    return;\n  }" { (expression_statement "sqlite3CreateIndex((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,\n                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,\n                       in_stack_ffffffac);" (call_expression "sqlite3CreateIndex((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,\n                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,\n                       in_stack_ffffffac)" identifier (argument_list "((Parse *)0x0,(Token *)pList_00,pName2,(SrcList *)0x0,(ExprList *)0x0,\n                       (int)pList,(Token *)0x0,(Expr *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,\n                       in_stack_ffffffac)" ( (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Token *)pList_00" ( (type_descriptor "Token *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(SrcList *)0x0" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int)pList" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(Token *)0x0" ( (type_descriptor "Token *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Expr *)0x2" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) }))) (expression_statement "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe11f));" (call_expression "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0xe11f))" identifier (argument_list "(pParse_00,(char *)(unaff_EDI + 0xe11f))" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xe11f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe11f)" ( (binary_expression "unaff_EDI + 0xe11f" identifier + number_literal) ))) ))) ;) (labeled_statement "joined_r0x000c7e74:\n  if (pList_00 == (ExprList *)0x0) {\n    return;\n  }" statement_identifier : (if_statement "if (pList_00 == (ExprList *)0x0) {\n    return;\n  }" if (parenthesized_expression "(pList_00 == (ExprList *)0x0)" ( (binary_expression "pList_00 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (labeled_statement "LAB_000c7e08:\n  exprListDeleteNN(pParse_00->db,pList_00);" statement_identifier : (expression_statement "exprListDeleteNN(pParse_00->db,pList_00);" (call_expression "exprListDeleteNN(pParse_00->db,pList_00)" identifier (argument_list "(pParse_00->db,pList_00)" ( (field_expression "pParse_00->db" identifier -> field_identifier) , identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000c7bd0(int param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  code *pcVar4;\n  ushort uVar5;\n  int iVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 extraout_ECX;\n  uint uVar9;\n  byte *pbVar10;\n  char cVar11;\n  int *piVar12;\n  uint uVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  undefined2 uVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int unaff_EDI;\n  undefined8 uVar19;\n  int local_50;\n  int *local_4c;\n  undefined4 *local_2c;\n  undefined1 local_28;\n  \n  uVar19 = FUN_000d0aaf();\n  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);\n  iVar6 = (int)uVar19;\n  puVar2 = *(undefined4 **)(iVar6 + 0xe8);\n  if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar17 = iVar17 + 1;\n  puVar18 = puVar18 + 5;\n  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }\n  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);\njoined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  FUN_00054000();\n  return;\n}\n\n" (function_definition "void FUN_000c7bd0(int param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  code *pcVar4;\n  ushort uVar5;\n  int iVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 extraout_ECX;\n  uint uVar9;\n  byte *pbVar10;\n  char cVar11;\n  int *piVar12;\n  uint uVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  undefined2 uVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int unaff_EDI;\n  undefined8 uVar19;\n  int local_50;\n  int *local_4c;\n  undefined4 *local_2c;\n  undefined1 local_28;\n  \n  uVar19 = FUN_000d0aaf();\n  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);\n  iVar6 = (int)uVar19;\n  puVar2 = *(undefined4 **)(iVar6 + 0xe8);\n  if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar17 = iVar17 + 1;\n  puVar18 = puVar18 + 5;\n  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }\n  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);\njoined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  FUN_00054000();\n  return;\n}" primitive_type (function_declarator "FUN_000c7bd0(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  code *pcVar4;\n  ushort uVar5;\n  int iVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 extraout_ECX;\n  uint uVar9;\n  byte *pbVar10;\n  char cVar11;\n  int *piVar12;\n  uint uVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  undefined2 uVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int unaff_EDI;\n  undefined8 uVar19;\n  int local_50;\n  int *local_4c;\n  undefined4 *local_2c;\n  undefined1 local_28;\n  \n  uVar19 = FUN_000d0aaf();\n  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);\n  iVar6 = (int)uVar19;\n  puVar2 = *(undefined4 **)(iVar6 + 0xe8);\n  if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar17 = iVar17 + 1;\n  puVar18 = puVar18 + 5;\n  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }\n  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);\njoined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  FUN_00054000();\n  return;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined2 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar19;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined1 local_28;" type_identifier identifier ;) (expression_statement "uVar19 = FUN_000d0aaf();" (assignment_expression "uVar19 = FUN_000d0aaf()" identifier = (call_expression "FUN_000d0aaf()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar12 = (int *)((ulonglong)uVar19 >> 0x20);" (assignment_expression "piVar12 = (int *)((ulonglong)uVar19 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar19 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" ( (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar6 = (int)uVar19;" (assignment_expression "iVar6 = (int)uVar19" identifier = (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar2 = *(undefined4 **)(iVar6 + 0xe8);" (assignment_expression "puVar2 = *(undefined4 **)(iVar6 + 0xe8)" identifier = (pointer_expression "*(undefined4 **)(iVar6 + 0xe8)" * (cast_expression "(undefined4 **)(iVar6 + 0xe8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0xe8)" ( (binary_expression "iVar6 + 0xe8" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }" { (if_statement "if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }" if (parenthesized_expression "((puVar2[9] & 4) == 0)" ( (binary_expression "(puVar2[9] & 4) == 0" (parenthesized_expression "(puVar2[9] & 4)" ( (binary_expression "puVar2[9] & 4" (subscript_expression "puVar2[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }" { (expression_statement "puVar2[9] = puVar2[9] | 4;" (assignment_expression "puVar2[9] = puVar2[9] | 4" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = (binary_expression "puVar2[9] | 4" (subscript_expression "puVar2[9]" identifier [ number_literal ]) | number_literal)) ;) (if_statement "if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }" { (expression_statement "iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;" (assignment_expression "iVar17 = *(short *)((int)puVar2 + 0x2a) + -1" identifier = (binary_expression "*(short *)((int)puVar2 + 0x2a) + -1" (pointer_expression "*(short *)((int)puVar2 + 0x2a)" * (cast_expression "(short *)((int)puVar2 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x2a)" ( (binary_expression "(int)puVar2 + 0x2a" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);" (assignment_expression "local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14)" identifier = (cast_expression "(undefined4 *)(puVar2[1] + iVar17 * 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2[1] + iVar17 * 0x14)" ( (binary_expression "puVar2[1] + iVar17 * 0x14" (subscript_expression "puVar2[1]" identifier [ number_literal ]) + (binary_expression "iVar17 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "uVar1 = *(ushort *)(local_2c + 4);" (assignment_expression "uVar1 = *(ushort *)(local_2c + 4)" identifier = (pointer_expression "*(ushort *)(local_2c + 4)" * (cast_expression "(ushort *)(local_2c + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar1 | 1;" (assignment_expression "uVar5 = uVar1 | 1" identifier = (binary_expression "uVar1 | 1" identifier | number_literal)) ;) (expression_statement "*(ushort *)(local_2c + 4) = uVar5;" (assignment_expression "*(ushort *)(local_2c + 4) = uVar5" (pointer_expression "*(ushort *)(local_2c + 4)" * (cast_expression "(ushort *)(local_2c + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }" if (parenthesized_expression "((uVar1 & 0x60) != 0)" ( (binary_expression "(uVar1 & 0x60) != 0" (parenthesized_expression "(uVar1 & 0x60)" ( (binary_expression "uVar1 & 0x60" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }" { (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xc58f);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xc58f)" identifier (argument_list "(iVar6,unaff_EDI + 0xc58f)" ( identifier , (binary_expression "unaff_EDI + 0xc58f" identifier + number_literal) ))) ;) (expression_statement "uVar5 = *(ushort *)(local_2c + 4);" (assignment_expression "uVar5 = *(ushort *)(local_2c + 4)" identifier = (pointer_expression "*(ushort *)(local_2c + 4)" * (cast_expression "(ushort *)(local_2c + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);" statement_identifier : (expression_statement "pcVar15 = (char *)(unaff_EDI + 0xa9b7);" (assignment_expression "pcVar15 = (char *)(unaff_EDI + 0xa9b7)" identifier = (cast_expression "(char *)(unaff_EDI + 0xa9b7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xa9b7)" ( (binary_expression "unaff_EDI + 0xa9b7" identifier + number_literal) )))) ;)) (if_statement "if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }" if (parenthesized_expression "((uVar5 & 4) != 0)" ( (binary_expression "(uVar5 & 4) != 0" (parenthesized_expression "(uVar5 & 4)" ( (binary_expression "uVar5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }" { (expression_statement "pcVar15 = (char *)*local_2c;" (assignment_expression "pcVar15 = (char *)*local_2c" identifier = (cast_expression "(char *)*local_2c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_2c" * identifier))) ;) (expression_statement "sVar7 = strlen(pcVar15);" (assignment_expression "sVar7 = strlen(pcVar15)" identifier = (call_expression "strlen(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "pcVar15 = pcVar15 + sVar7 + 1;" (assignment_expression "pcVar15 = pcVar15 + sVar7 + 1" identifier = (binary_expression "pcVar15 + sVar7 + 1" (binary_expression "pcVar15 + sVar7" identifier + identifier) + number_literal)) ;) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );" do (compound_statement "{\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        }" { (expression_statement "uVar13 = (uint)(byte)pcVar15[iVar8];" (assignment_expression "uVar13 = (uint)(byte)pcVar15[iVar8]" identifier = (cast_expression "(uint)(byte)pcVar15[iVar8]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar15[iVar8]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar15[iVar8]" identifier [ identifier ])))) ;) (expression_statement "uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);" (assignment_expression "uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b)" identifier = (binary_expression "(uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar8 + unaff_EDI + 0x9d2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + unaff_EDI + 0x9d2b)" ( (binary_expression "iVar8 + unaff_EDI + 0x9d2b" (binary_expression "iVar8 + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) (if_statement "if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" if (parenthesized_expression "(uVar13 == uVar9)" ( (binary_expression "uVar13 == uVar9" identifier == identifier) )) (compound_statement "{\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }" { (if_statement "if (uVar13 == 0) goto code_r0x000c7d34;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000c7d34;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" else (if_statement "if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  )" ( (binary_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)" (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar13)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar13)" ( (binary_expression "unaff_EDI + 0x14ae7 + uVar13" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + identifier) )))) != (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar9)" ( (binary_expression "unaff_EDI + 0x14ae7 + uVar9" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + identifier) ))))) )) (goto_statement "goto LAB_000c7e20;" goto statement_identifier ;)))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar8 = *piVar12;" (assignment_expression "iVar8 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }" if (parenthesized_expression "(0 < iVar8)" ( (binary_expression "0 < iVar8" number_literal < identifier) )) (compound_statement "{\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }" { (expression_statement "local_4c = piVar12 + 1;" (assignment_expression "local_4c = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) (expression_statement "local_2c = (undefined4 *)0x0;" (assignment_expression "local_2c = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);" do (compound_statement "{\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        }" { (expression_statement "pcVar15 = (char *)*local_4c;" (assignment_expression "pcVar15 = (char *)*local_4c" identifier = (cast_expression "(char *)*local_4c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_4c" * identifier))) ;) (while_statement "while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }" { (if_statement "if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }" { (expression_statement "pcVar4 = (code *)invalidInstructionException();" (assignment_expression "pcVar4 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((pcVar15[5] & 0x10U) == 0) break;" if (parenthesized_expression "((pcVar15[5] & 0x10U) == 0)" ( (binary_expression "(pcVar15[5] & 0x10U) == 0" (parenthesized_expression "(pcVar15[5] & 0x10U)" ( (binary_expression "pcVar15[5] & 0x10U" (subscript_expression "pcVar15[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar15 = *(char **)(pcVar15 + 0xc);" (assignment_expression "pcVar15 = *(char **)(pcVar15 + 0xc)" identifier = (pointer_expression "*(char **)(pcVar15 + 0xc)" * (cast_expression "(char **)(pcVar15 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "cVar11 = *pcVar15;" (assignment_expression "cVar11 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" if (parenthesized_expression "(cVar11 == 's')" ( (binary_expression "cVar11 == 's'" identifier == (char_literal "'s'" ' character ')) )) (compound_statement "{\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }" { (expression_statement "*pcVar15 = ';';" (assignment_expression "*pcVar15 = ';'" (pointer_expression "*pcVar15" * identifier) = (char_literal "';'" ' character ')) ;) (labeled_statement "LAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" statement_identifier : (if_statement "if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" if (parenthesized_expression "(0 < *(short *)((int)puVar2 + 0x2a))" ( (binary_expression "0 < *(short *)((int)puVar2 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)puVar2 + 0x2a)" * (cast_expression "(short *)((int)puVar2 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x2a)" ( (binary_expression "(int)puVar2 + 0x2a" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" { (expression_statement "puVar18 = (undefined4 *)puVar2[1];" (assignment_expression "puVar18 = (undefined4 *)puVar2[1]" identifier = (cast_expression "(undefined4 *)puVar2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;" statement_identifier : (expression_statement "pbVar10 = (byte *)*puVar18;" (assignment_expression "pbVar10 = (byte *)*puVar18" identifier = (cast_expression "(byte *)*puVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar18" * identifier))) ;)) (expression_statement "pbVar14 = *(byte **)(pcVar15 + 8);" (assignment_expression "pbVar14 = *(byte **)(pcVar15 + 8)" identifier = (pointer_expression "*(byte **)(pcVar15 + 8)" * (cast_expression "(byte **)(pcVar15 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 8)" ( (binary_expression "pcVar15 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );" do (compound_statement "{\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" { (expression_statement "uVar9 = (uint)*pbVar14;" (assignment_expression "uVar9 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" if (parenthesized_expression "(uVar9 == *pbVar10)" ( (binary_expression "uVar9 == *pbVar10" identifier == (pointer_expression "*pbVar10" * identifier)) )) (compound_statement "{\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }" { (if_statement "if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }" { (expression_statement "uVar5 = *(ushort *)(puVar18 + 4);" (assignment_expression "uVar5 = *(ushort *)(puVar18 + 4)" identifier = (pointer_expression "*(ushort *)(puVar18 + 4)" * (cast_expression "(ushort *)(puVar18 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(puVar18 + 4) = uVar5 | 1;" (assignment_expression "*(ushort *)(puVar18 + 4) = uVar5 | 1" (pointer_expression "*(ushort *)(puVar18 + 4)" * (cast_expression "(ushort *)(puVar18 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) (expression_statement "local_2c = puVar18;" (assignment_expression "local_2c = puVar18" identifier = identifier) ;) (if_statement "if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }" if (parenthesized_expression "((uVar5 & 0x60) != 0)" ( (binary_expression "(uVar5 & 0x60) != 0" (parenthesized_expression "(uVar5 & 0x60)" ( (binary_expression "uVar5 & 0x60" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }" { (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xc58f);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xc58f)" identifier (argument_list "(iVar6,unaff_EDI + 0xc58f)" ( identifier , (binary_expression "unaff_EDI + 0xc58f" identifier + number_literal) ))) ;) })) (goto_statement "goto LAB_000c7caf;" goto statement_identifier ;) })) }) (else_clause "else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" else (if_statement "if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10))" ( (binary_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar9)" ( (binary_expression "unaff_EDI + 0x14ae7 + uVar9" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + identifier) )))) != (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" * (cast_expression "(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" ( (binary_expression "unaff_EDI + 0x14ae7 + (uint)*pbVar10" (binary_expression "unaff_EDI + 0x14ae7" identifier + number_literal) + (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) )) (goto_statement "goto LAB_000c7f08;" goto statement_identifier ;)))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) }) (else_clause "else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" else (if_statement "if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" if (parenthesized_expression "(cVar11 == 'o')" ( (binary_expression "cVar11 == 'o'" identifier == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }" { (if_statement "if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }" if (parenthesized_expression "(**(char **)(pcVar15 + 0xc) == 's')" ( (binary_expression "**(char **)(pcVar15 + 0xc) == 's'" (pointer_expression "**(char **)(pcVar15 + 0xc)" * (pointer_expression "*(char **)(pcVar15 + 0xc)" * (cast_expression "(char **)(pcVar15 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) ))))) == (char_literal "'s'" ' character ')) )) (compound_statement "{\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }" { (expression_statement "**(char **)(pcVar15 + 0xc) = ';';" (assignment_expression "**(char **)(pcVar15 + 0xc) = ';'" (pointer_expression "**(char **)(pcVar15 + 0xc)" * (pointer_expression "*(char **)(pcVar15 + 0xc)" * (cast_expression "(char **)(pcVar15 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) ))))) = (char_literal "';'" ' character ')) ;) (expression_statement "cVar11 = *pcVar15;" (assignment_expression "cVar11 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (goto_statement "goto LAB_000c7ca6;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" else (compound_statement "{\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" { (labeled_statement "LAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;" statement_identifier : (if_statement "if (cVar11 == ';') goto LAB_000c7e93;" if (parenthesized_expression "(cVar11 == ';')" ( (binary_expression "cVar11 == ';'" identifier == (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_000c7e93;" goto statement_identifier ;))) }))))) (labeled_statement "LAB_000c7caf:\n          local_50 = local_50 + 1;" statement_identifier : (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;)) (expression_statement "local_4c = local_4c + 4;" (assignment_expression "local_4c = local_4c + 4" identifier = (binary_expression "local_4c + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != local_50)" ( (binary_expression "iVar8 != local_50" identifier != identifier) )) ;) (if_statement "if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }" if (parenthesized_expression "((iVar8 == 1) && (local_2c != (undefined4 *)0x0))" ( (binary_expression "(iVar8 == 1) && (local_2c != (undefined4 *)0x0)" (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_2c != (undefined4 *)0x0)" ( (binary_expression "local_2c != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }" { (expression_statement "uVar5 = *(ushort *)(local_2c + 4);" (assignment_expression "uVar5 = *(ushort *)(local_2c + 4)" identifier = (pointer_expression "*(ushort *)(local_2c + 4)" * (cast_expression "(ushort *)(local_2c + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000c7cde;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_000c7e20;" goto statement_identifier ;) })) (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2)" identifier (argument_list "(iVar6,unaff_EDI + 0xe0f3,*puVar2)" ( identifier , (binary_expression "unaff_EDI + 0xe0f3" identifier + number_literal) , (pointer_expression "*puVar2" * identifier) ))) ;) })) (goto_statement "goto joined_r0x000c7e74;" goto statement_identifier ;) (labeled_statement "LAB_000c7f08:\n  iVar17 = iVar17 + 1;" statement_identifier : (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;)) (expression_statement "puVar18 = puVar18 + 5;" (assignment_expression "puVar18 = puVar18 + 5" identifier = (binary_expression "puVar18 + 5" identifier + number_literal)) ;) (if_statement "if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;" if (parenthesized_expression "(iVar17 == *(short *)((int)puVar2 + 0x2a))" ( (binary_expression "iVar17 == *(short *)((int)puVar2 + 0x2a)" identifier == (pointer_expression "*(short *)((int)puVar2 + 0x2a)" * (cast_expression "(short *)((int)puVar2 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x2a)" ( (binary_expression "(int)puVar2 + 0x2a" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_000c7caf;" goto statement_identifier ;)) (goto_statement "goto LAB_000c7eb8;" goto statement_identifier ;) (labeled_statement "code_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }" statement_identifier : (if_statement "if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }" if (parenthesized_expression "(param_2 != 1)" ( (binary_expression "param_2 != 1" identifier != number_literal) )) (compound_statement "{\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }" { (expression_statement "uVar9 = param_1 << 3 | puVar2[9];" (assignment_expression "uVar9 = param_1 << 3 | puVar2[9]" identifier = (binary_expression "param_1 << 3 | puVar2[9]" (binary_expression "param_1 << 3" identifier << number_literal) | (subscript_expression "puVar2[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = (undefined2)iVar17;" (assignment_expression "uVar16 = (undefined2)iVar17" identifier = (cast_expression "(undefined2)iVar17" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "local_28 = (undefined1)extraout_ECX;" (assignment_expression "local_28 = (undefined1)extraout_ECX" identifier = (cast_expression "(undefined1)extraout_ECX" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }" if (parenthesized_expression "(*(byte *)(iVar6 + 0xcc) < 2)" ( (binary_expression "*(byte *)(iVar6 + 0xcc) < 2" (pointer_expression "*(byte *)(iVar6 + 0xcc)" * (cast_expression "(byte *)(iVar6 + 0xcc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xcc)" ( (binary_expression "iVar6 + 0xcc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }" { (expression_statement "*(undefined2 *)(puVar2 + 10) = uVar16;" (assignment_expression "*(undefined2 *)(puVar2 + 10) = uVar16" (pointer_expression "*(undefined2 *)(puVar2 + 10)" * (cast_expression "(undefined2 *)(puVar2 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 10)" ( (binary_expression "puVar2 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[9] = uVar9;" (assignment_expression "puVar2[9] = uVar9" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar2 + 0x32) = local_28;" (assignment_expression "*(undefined1 *)((int)puVar2 + 0x32) = local_28" (pointer_expression "*(undefined1 *)((int)puVar2 + 0x32)" * (cast_expression "(undefined1 *)((int)puVar2 + 0x32)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x32)" ( (binary_expression "(int)puVar2 + 0x32" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (piVar12 == (int *)0x0) {\n        return;\n      }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }" else (compound_statement "{\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }" { (if_statement "if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }" { (expression_statement "*(undefined2 *)(puVar2 + 10) = uVar16;" (assignment_expression "*(undefined2 *)(puVar2 + 10) = uVar16" (pointer_expression "*(undefined2 *)(puVar2 + 10)" * (cast_expression "(undefined2 *)(puVar2 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 10)" ( (binary_expression "puVar2 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[9] = uVar9;" (assignment_expression "puVar2[9] = uVar9" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar2 + 0x32) = local_28;" (assignment_expression "*(undefined1 *)((int)puVar2 + 0x32) = local_28" (pointer_expression "*(undefined1 *)((int)puVar2 + 0x32)" * (cast_expression "(undefined1 *)((int)puVar2 + 0x32)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x32)" ( (binary_expression "(int)puVar2 + 0x32" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (for_statement "for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }" for ( (assignment_expression "iVar17 = piVar12[1]" identifier = (subscript_expression "piVar12[1]" identifier [ number_literal ])) ; (parenthesized_expression "(iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0))" ( (binary_expression "iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0)" (binary_expression "iVar17 != 0" identifier != number_literal) && (parenthesized_expression "((*(byte *)(iVar17 + 5) & 0x10) != 0)" ( (binary_expression "(*(byte *)(iVar17 + 5) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar17 + 5) & 0x10)" ( (binary_expression "*(byte *)(iVar17 + 5) & 0x10" (pointer_expression "*(byte *)(iVar17 + 5)" * (cast_expression "(byte *)(iVar17 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 5)" ( (binary_expression "iVar17 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ; (assignment_expression "iVar17 = *(int *)(iVar17 + 0xc)" identifier = (pointer_expression "*(int *)(iVar17 + 0xc)" * (cast_expression "(int *)(iVar17 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n      }" { })) (for_statement "for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }" for ( (assignment_expression "piVar3 = *(int **)(iVar6 + 0x114)" identifier = (pointer_expression "*(int **)(iVar6 + 0x114)" * (cast_expression "(int **)(iVar6 + 0x114)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x114)" ( (binary_expression "iVar6 + 0x114" identifier + number_literal) ))))) ; (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar3 = (int *)piVar3[3]" identifier = (cast_expression "(int *)piVar3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[3]" identifier [ number_literal ]))) ) (compound_statement "{\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }" { (if_statement "if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }" if (parenthesized_expression "(iVar17 == *piVar3)" ( (binary_expression "iVar17 == *piVar3" identifier == (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }" { (expression_statement "*piVar3 = (int)(puVar2 + 10);" (assignment_expression "*piVar3 = (int)(puVar2 + 10)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(puVar2 + 10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar2 + 10)" ( (binary_expression "puVar2 + 10" identifier + number_literal) )))) ;) (break_statement "break;" break ;) })) })) (expression_statement "*(undefined2 *)(puVar2 + 10) = uVar16;" (assignment_expression "*(undefined2 *)(puVar2 + 10) = uVar16" (pointer_expression "*(undefined2 *)(puVar2 + 10)" * (cast_expression "(undefined2 *)(puVar2 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 10)" ( (binary_expression "puVar2 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[9] = uVar9;" (assignment_expression "puVar2[9] = uVar9" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar2 + 0x32) = local_28;" (assignment_expression "*(undefined1 *)((int)puVar2 + 0x32) = local_28" (pointer_expression "*(undefined1 *)((int)puVar2 + 0x32)" * (cast_expression "(undefined1 *)((int)puVar2 + 0x32)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x32)" ( (binary_expression "(int)puVar2 + 0x32" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }))) (expression_statement "cVar11 = (char)piVar12[3];" (assignment_expression "cVar11 = (char)piVar12[3]" identifier = (cast_expression "(char)piVar12[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar12[3]" identifier [ number_literal ]))) ;) (expression_statement "*(char *)(iVar6 + 0xca) = cVar11;" (assignment_expression "*(char *)(iVar6 + 0xca) = cVar11" (pointer_expression "*(char *)(iVar6 + 0xca)" * (cast_expression "(char *)(iVar6 + 0xca)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xca)" ( (binary_expression "iVar6 + 0xca" identifier + number_literal) )))) = identifier) ;) (if_statement "if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }" if (parenthesized_expression "(0 < *piVar12)" ( (binary_expression "0 < *piVar12" number_literal < (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (if_statement "if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }" if (parenthesized_expression "((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)piVar12 + 0xd) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar12 + 0xd) & 0x20)" ( (binary_expression "*(byte *)((int)piVar12 + 0xd) & 0x20" (pointer_expression "*(byte *)((int)piVar12 + 0xd)" * (cast_expression "(byte *)((int)piVar12 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0xd)" ( (binary_expression "(int)piVar12 + 0xd" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }" { (do_statement "do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);" do (compound_statement "{\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (if_statement "if (*piVar12 == iVar17) goto LAB_000c7e08;" if (parenthesized_expression "(*piVar12 == iVar17)" ( (binary_expression "*piVar12 == iVar17" (pointer_expression "*piVar12" * identifier) == identifier) )) (goto_statement "goto LAB_000c7e08;" goto statement_identifier ;)) }) while (parenthesized_expression "((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20)" ( (binary_expression "*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20" (pointer_expression "*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd)" * (cast_expression "(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + iVar17 * 0x10 + 0xd)" ( (binary_expression "(int)piVar12 + iVar17 * 0x10 + 0xd" (binary_expression "(int)piVar12 + iVar17 * 0x10" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar17 * 0x10" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) ;) (expression_statement "cVar11 = (char)piVar12[iVar17 * 4 + 3];" (assignment_expression "cVar11 = (char)piVar12[iVar17 * 4 + 3]" identifier = (cast_expression "(char)piVar12[iVar17 * 4 + 3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar12[iVar17 * 4 + 3]" identifier [ (binary_expression "iVar17 * 4 + 3" (binary_expression "iVar17 * 4" identifier * number_literal) + number_literal) ]))) ;) })) (if_statement "if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }" if (parenthesized_expression "((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03'))" ( (binary_expression "(cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')" (parenthesized_expression "(cVar11 == '\0')" ( (binary_expression "cVar11 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')" ( (comma_expression "iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03'" (assignment_expression "iVar17 = unaff_EDI + 0x9c41" identifier = (binary_expression "unaff_EDI + 0x9c41" identifier + number_literal)) , (binary_expression "cVar11 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence '))) ))) )) (compound_statement "{\n        iVar17 = unaff_EDI + 0x9c3b;\n      }" { (expression_statement "iVar17 = unaff_EDI + 0x9c3b;" (assignment_expression "iVar17 = unaff_EDI + 0x9c3b" identifier = (binary_expression "unaff_EDI + 0x9c3b" identifier + number_literal)) ;) })) (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17)" identifier (argument_list "(iVar6,unaff_EDI + 0x9c46,iVar17)" ( identifier , (binary_expression "unaff_EDI + 0x9c46" identifier + number_literal) , identifier ))) ;) })) (goto_statement "goto LAB_000c7e08;" goto statement_identifier ;) }))) (labeled_statement "LAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }" statement_identifier : (if_statement "if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }" { (expression_statement "FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);" (call_expression "FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2)" identifier (argument_list "(0,piVar12,extraout_ECX,0,0,param_2,0,2)" ( number_literal , identifier , identifier , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (return_statement "return;" return ;) }))) (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xe11f);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xe11f)" identifier (argument_list "(iVar6,unaff_EDI + 0xe11f)" ( identifier , (binary_expression "unaff_EDI + 0xe11f" identifier + number_literal) ))) ;) (labeled_statement "joined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }" statement_identifier : (if_statement "if (piVar12 == (int *)0x0) {\n    return;\n  }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (labeled_statement "LAB_000c7e08:\n  FUN_00054000();" statement_identifier : (expression_statement "FUN_00054000();" (call_expression "FUN_00054000()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ))))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;))) }))))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * IDENT) ))) ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (return_statement return ;) })) (for_statement for ( (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ; (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { })) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (break_statement break ;) })) })) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , LIT , LIT , IDENT , LIT , LIT ))) ;) (return_statement return ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return ;) })))
(function_definition "void FUN_000c7bd0(int param_1,int param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  code *pcVar4;\n  ushort uVar5;\n  int iVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 extraout_ECX;\n  uint uVar9;\n  byte *pbVar10;\n  char cVar11;\n  int *piVar12;\n  uint uVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  undefined2 uVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int unaff_EDI;\n  undefined8 uVar19;\n  int local_50;\n  int *local_4c;\n  undefined4 *local_2c;\n  undefined1 local_28;\n  \n  uVar19 = FUN_000d0aaf();\n  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);\n  iVar6 = (int)uVar19;\n  puVar2 = *(undefined4 **)(iVar6 + 0xe8);\n  if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar17 = iVar17 + 1;\n  puVar18 = puVar18 + 5;\n  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }\n  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);\njoined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  FUN_00054000();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000c7bd0(int param_1,int param_2)" (identifier "FUN_000c7bd0") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  ushort uVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  code *pcVar4;\n  ushort uVar5;\n  int iVar6;\n  size_t sVar7;\n  int iVar8;\n  undefined4 extraout_ECX;\n  uint uVar9;\n  byte *pbVar10;\n  char cVar11;\n  int *piVar12;\n  uint uVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  undefined2 uVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  int unaff_EDI;\n  undefined8 uVar19;\n  int local_50;\n  int *local_4c;\n  undefined4 *local_2c;\n  undefined1 local_28;\n  \n  uVar19 = FUN_000d0aaf();\n  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);\n  iVar6 = (int)uVar19;\n  puVar2 = *(undefined4 **)(iVar6 + 0xe8);\n  if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }\n  goto joined_r0x000c7e74;\nLAB_000c7f08:\n  iVar17 = iVar17 + 1;\n  puVar18 = puVar18 + 5;\n  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;\n  goto LAB_000c7eb8;\ncode_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }\nLAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }\n  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);\njoined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }\nLAB_000c7e08:\n  FUN_00054000();\n  return;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "ushort uVar5;" (type_identifier "ushort") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "undefined2 uVar16;" (type_identifier "undefined2") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "undefined8 uVar19;" (type_identifier "undefined8") (identifier "uVar19") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int *local_4c;" (primitive_type "int") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined4 *local_2c;" (type_identifier "undefined4") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "undefined1 local_28;" (type_identifier "undefined1") (identifier "local_28") (; ";")) (expression_statement "uVar19 = FUN_000d0aaf();" (assignment_expression "uVar19 = FUN_000d0aaf()" (identifier "uVar19") (= "=") (call_expression "FUN_000d0aaf()" (identifier "FUN_000d0aaf") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar12 = (int *)((ulonglong)uVar19 >> 0x20);" (assignment_expression "piVar12 = (int *)((ulonglong)uVar19 >> 0x20)" (identifier "piVar12") (= "=") (cast_expression "(int *)((ulonglong)uVar19 >> 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar6 = (int)uVar19;" (assignment_expression "iVar6 = (int)uVar19" (identifier "iVar6") (= "=") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(iVar6 + 0xe8);" (assignment_expression "puVar2 = *(undefined4 **)(iVar6 + 0xe8)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(iVar6 + 0xe8)" (* "*") (cast_expression "(undefined4 **)(iVar6 + 0xe8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0xe8)" (( "(") (binary_expression "iVar6 + 0xe8" (identifier "iVar6") (+ "+") (number_literal "0xe8")) () ")"))))) (; ";")) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }" (if "if") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }\n    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);\n  }" ({ "{") (if_statement "if ((puVar2[9] & 4) == 0) {\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }" (if "if") (parenthesized_expression "((puVar2[9] & 4) == 0)" (( "(") (binary_expression "(puVar2[9] & 4) == 0" (parenthesized_expression "(puVar2[9] & 4)" (( "(") (binary_expression "puVar2[9] & 4" (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar2[9] = puVar2[9] | 4;\n      if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }\n      iVar8 = *piVar12;\n      if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }\n      goto LAB_000c7e20;\n    }" ({ "{") (expression_statement "puVar2[9] = puVar2[9] | 4;" (assignment_expression "puVar2[9] = puVar2[9] | 4" (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]")) (= "=") (binary_expression "puVar2[9] | 4" (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]")) (| "|") (number_literal "4"))) (; ";")) (if_statement "if (piVar12 == (int *)0x0) {\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(piVar12 == (int *)0x0)" (( "(") (binary_expression "piVar12 == (int *)0x0" (identifier "piVar12") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;\n        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);\n        uVar1 = *(ushort *)(local_2c + 4);\n        uVar5 = uVar1 | 1;\n        *(ushort *)(local_2c + 4) = uVar5;\n        if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }\nLAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);\n        if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }\n        iVar8 = 0;\n        do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );\n      }" ({ "{") (expression_statement "iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;" (assignment_expression "iVar17 = *(short *)((int)puVar2 + 0x2a) + -1" (identifier "iVar17") (= "=") (binary_expression "*(short *)((int)puVar2 + 0x2a) + -1" (pointer_expression "*(short *)((int)puVar2 + 0x2a)" (* "*") (cast_expression "(short *)((int)puVar2 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + 0x2a)" (( "(") (binary_expression "(int)puVar2 + 0x2a" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (number_literal "0x2a")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);" (assignment_expression "local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14)" (identifier "local_2c") (= "=") (cast_expression "(undefined4 *)(puVar2[1] + iVar17 * 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2[1] + iVar17 * 0x14)" (( "(") (binary_expression "puVar2[1] + iVar17 * 0x14" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "iVar17 * 0x14" (identifier "iVar17") (* "*") (number_literal "0x14"))) () ")")))) (; ";")) (expression_statement "uVar1 = *(ushort *)(local_2c + 4);" (assignment_expression "uVar1 = *(ushort *)(local_2c + 4)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(local_2c + 4)" (* "*") (cast_expression "(ushort *)(local_2c + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + 4)" (( "(") (binary_expression "local_2c + 4" (identifier "local_2c") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar5 = uVar1 | 1;" (assignment_expression "uVar5 = uVar1 | 1" (identifier "uVar5") (= "=") (binary_expression "uVar1 | 1" (identifier "uVar1") (| "|") (number_literal "1"))) (; ";")) (expression_statement "*(ushort *)(local_2c + 4) = uVar5;" (assignment_expression "*(ushort *)(local_2c + 4) = uVar5" (pointer_expression "*(ushort *)(local_2c + 4)" (* "*") (cast_expression "(ushort *)(local_2c + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + 4)" (( "(") (binary_expression "local_2c + 4" (identifier "local_2c") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if ((uVar1 & 0x60) != 0) {\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }" (if "if") (parenthesized_expression "((uVar1 & 0x60) != 0)" (( "(") (binary_expression "(uVar1 & 0x60) != 0" (parenthesized_expression "(uVar1 & 0x60)" (( "(") (binary_expression "uVar1 & 0x60" (identifier "uVar1") (& "&") (number_literal "0x60")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n          uVar5 = *(ushort *)(local_2c + 4);\n        }" ({ "{") (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xc58f);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xc58f)" (identifier "FUN_0003d470") (argument_list "(iVar6,unaff_EDI + 0xc58f)" (( "(") (identifier "iVar6") (, ",") (binary_expression "unaff_EDI + 0xc58f" (identifier "unaff_EDI") (+ "+") (number_literal "0xc58f")) () ")"))) (; ";")) (expression_statement "uVar5 = *(ushort *)(local_2c + 4);" (assignment_expression "uVar5 = *(ushort *)(local_2c + 4)" (identifier "uVar5") (= "=") (pointer_expression "*(ushort *)(local_2c + 4)" (* "*") (cast_expression "(ushort *)(local_2c + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + 4)" (( "(") (binary_expression "local_2c + 4" (identifier "local_2c") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (labeled_statement "LAB_000c7cde:\n        pcVar15 = (char *)(unaff_EDI + 0xa9b7);" (statement_identifier "LAB_000c7cde") (: ":") (expression_statement "pcVar15 = (char *)(unaff_EDI + 0xa9b7);" (assignment_expression "pcVar15 = (char *)(unaff_EDI + 0xa9b7)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(unaff_EDI + 0xa9b7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xa9b7)" (( "(") (binary_expression "unaff_EDI + 0xa9b7" (identifier "unaff_EDI") (+ "+") (number_literal "0xa9b7")) () ")")))) (; ";"))) (if_statement "if ((uVar5 & 4) != 0) {\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }" (if "if") (parenthesized_expression "((uVar5 & 4) != 0)" (( "(") (binary_expression "(uVar5 & 4) != 0" (parenthesized_expression "(uVar5 & 4)" (( "(") (binary_expression "uVar5 & 4" (identifier "uVar5") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar15 = (char *)*local_2c;\n          sVar7 = strlen(pcVar15);\n          pcVar15 = pcVar15 + sVar7 + 1;\n        }" ({ "{") (expression_statement "pcVar15 = (char *)*local_2c;" (assignment_expression "pcVar15 = (char *)*local_2c" (identifier "pcVar15") (= "=") (cast_expression "(char *)*local_2c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_2c" (* "*") (identifier "local_2c")))) (; ";")) (expression_statement "sVar7 = strlen(pcVar15);" (assignment_expression "sVar7 = strlen(pcVar15)" (identifier "sVar7") (= "=") (call_expression "strlen(pcVar15)" (identifier "strlen") (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")")))) (; ";")) (expression_statement "pcVar15 = pcVar15 + sVar7 + 1;" (assignment_expression "pcVar15 = pcVar15 + sVar7 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + sVar7 + 1" (binary_expression "pcVar15 + sVar7" (identifier "pcVar15") (+ "+") (identifier "sVar7")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        } while( true );" (do "do") (compound_statement "{\n          uVar13 = (uint)(byte)pcVar15[iVar8];\n          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);\n          if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;\n          iVar8 = iVar8 + 1;\n        }" ({ "{") (expression_statement "uVar13 = (uint)(byte)pcVar15[iVar8];" (assignment_expression "uVar13 = (uint)(byte)pcVar15[iVar8]" (identifier "uVar13") (= "=") (cast_expression "(uint)(byte)pcVar15[iVar8]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pcVar15[iVar8]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar15[iVar8]" (identifier "pcVar15") ([ "[") (identifier "iVar8") (] "]"))))) (; ";")) (expression_statement "uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);" (assignment_expression "uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b)" (identifier "uVar9") (= "=") (binary_expression "(uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar8 + unaff_EDI + 0x9d2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + unaff_EDI + 0x9d2b)" (( "(") (binary_expression "iVar8 + unaff_EDI + 0x9d2b" (binary_expression "iVar8 + unaff_EDI" (identifier "iVar8") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x9d2b")) () ")"))))) (; ";")) (if_statement "if (uVar13 == uVar9) {\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }\n          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" (if "if") (parenthesized_expression "(uVar13 == uVar9)" (( "(") (binary_expression "uVar13 == uVar9" (identifier "uVar13") (== "==") (identifier "uVar9")) () ")")) (compound_statement "{\n            if (uVar13 == 0) goto code_r0x000c7d34;\n          }" ({ "{") (if_statement "if (uVar13 == 0) goto code_r0x000c7d34;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000c7d34;" (goto "goto") (statement_identifier "code_r0x000c7d34") (; ";"))) (} "}")) (else_clause "else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" (else "else") (if_statement "if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  ) goto LAB_000c7e20;" (if "if") (parenthesized_expression "(*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)\n                  )" (( "(") (binary_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)" (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar13)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar13)" (( "(") (binary_expression "unaff_EDI + 0x14ae7 + uVar13" (binary_expression "unaff_EDI + 0x14ae7" (identifier "unaff_EDI") (+ "+") (number_literal "0x14ae7")) (+ "+") (identifier "uVar13")) () ")")))) (!= "!=") (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar9)" (( "(") (binary_expression "unaff_EDI + 0x14ae7 + uVar9" (binary_expression "unaff_EDI + 0x14ae7" (identifier "unaff_EDI") (+ "+") (number_literal "0x14ae7")) (+ "+") (identifier "uVar9")) () ")"))))) () ")")) (goto_statement "goto LAB_000c7e20;" (goto "goto") (statement_identifier "LAB_000c7e20") (; ";"))))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "iVar8 = *piVar12;" (assignment_expression "iVar8 = *piVar12" (identifier "iVar8") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (if_statement "if (0 < iVar8) {\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }" (if "if") (parenthesized_expression "(0 < iVar8)" (( "(") (binary_expression "0 < iVar8" (number_literal "0") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n        local_4c = piVar12 + 1;\n        local_50 = 0;\n        iVar17 = -1;\n        local_2c = (undefined4 *)0x0;\n        do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);\n        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }\n      }" ({ "{") (expression_statement "local_4c = piVar12 + 1;" (assignment_expression "local_4c = piVar12 + 1" (identifier "local_4c") (= "=") (binary_expression "piVar12 + 1" (identifier "piVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" (identifier "iVar17") (= "=") (number_literal "-1")) (; ";")) (expression_statement "local_2c = (undefined4 *)0x0;" (assignment_expression "local_2c = (undefined4 *)0x0" (identifier "local_2c") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        } while (iVar8 != local_50);" (do "do") (compound_statement "{\n          pcVar15 = (char *)*local_4c;\n          while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }\n          cVar11 = *pcVar15;\n          if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }\nLAB_000c7caf:\n          local_50 = local_50 + 1;\n          local_4c = local_4c + 4;\n        }" ({ "{") (expression_statement "pcVar15 = (char *)*local_4c;" (assignment_expression "pcVar15 = (char *)*local_4c" (identifier "pcVar15") (= "=") (cast_expression "(char *)*local_4c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_4c" (* "*") (identifier "local_4c")))) (; ";")) (while_statement "while( true ) {\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }\n            if ((pcVar15[5] & 0x10U) == 0) break;\n            pcVar15 = *(char **)(pcVar15 + 0xc);\n          }" ({ "{") (if_statement "if (pcVar15 == (char *)0x0) {\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }" (if "if") (parenthesized_expression "(pcVar15 == (char *)0x0)" (( "(") (binary_expression "pcVar15 == (char *)0x0" (identifier "pcVar15") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n              pcVar4 = (code *)invalidInstructionException();\n              (*pcVar4)();\n            }" ({ "{") (expression_statement "pcVar4 = (code *)invalidInstructionException();" (assignment_expression "pcVar4 = (code *)invalidInstructionException()" (identifier "pcVar4") (= "=") (cast_expression "(code *)invalidInstructionException()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "invalidInstructionException()" (identifier "invalidInstructionException") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((pcVar15[5] & 0x10U) == 0) break;" (if "if") (parenthesized_expression "((pcVar15[5] & 0x10U) == 0)" (( "(") (binary_expression "(pcVar15[5] & 0x10U) == 0" (parenthesized_expression "(pcVar15[5] & 0x10U)" (( "(") (binary_expression "pcVar15[5] & 0x10U" (subscript_expression "pcVar15[5]" (identifier "pcVar15") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "0x10U")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar15 = *(char **)(pcVar15 + 0xc);" (assignment_expression "pcVar15 = *(char **)(pcVar15 + 0xc)" (identifier "pcVar15") (= "=") (pointer_expression "*(char **)(pcVar15 + 0xc)" (* "*") (cast_expression "(char **)(pcVar15 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0xc)" (( "(") (binary_expression "pcVar15 + 0xc" (identifier "pcVar15") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "cVar11 = *pcVar15;" (assignment_expression "cVar11 = *pcVar15" (identifier "cVar11") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (if_statement "if (cVar11 == 's') {\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }\n          else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" (if "if") (parenthesized_expression "(cVar11 == 's')" (( "(") (binary_expression "cVar11 == 's'" (identifier "cVar11") (== "==") (char_literal "'s'" (' "'") (character "s") (' "'"))) () ")")) (compound_statement "{\n            *pcVar15 = ';';\nLAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }\n            iVar17 = 0;\n          }" ({ "{") (expression_statement "*pcVar15 = ';';" (assignment_expression "*pcVar15 = ';'" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (= "=") (char_literal "';'" (' "'") (character ";") (' "'"))) (; ";")) (labeled_statement "LAB_000c7e93:\n            if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" (statement_identifier "LAB_000c7e93") (: ":") (if_statement "if (0 < *(short *)((int)puVar2 + 0x2a)) {\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" (if "if") (parenthesized_expression "(0 < *(short *)((int)puVar2 + 0x2a))" (( "(") (binary_expression "0 < *(short *)((int)puVar2 + 0x2a)" (number_literal "0") (< "<") (pointer_expression "*(short *)((int)puVar2 + 0x2a)" (* "*") (cast_expression "(short *)((int)puVar2 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + 0x2a)" (( "(") (binary_expression "(int)puVar2 + 0x2a" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (number_literal "0x2a")) () ")"))))) () ")")) (compound_statement "{\n              puVar18 = (undefined4 *)puVar2[1];\n              iVar17 = 0;\nLAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;\n              pbVar14 = *(byte **)(pcVar15 + 8);\n              do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );\n            }" ({ "{") (expression_statement "puVar18 = (undefined4 *)puVar2[1];" (assignment_expression "puVar18 = (undefined4 *)puVar2[1]" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)puVar2[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000c7eb8:\n              pbVar10 = (byte *)*puVar18;" (statement_identifier "LAB_000c7eb8") (: ":") (expression_statement "pbVar10 = (byte *)*puVar18;" (assignment_expression "pbVar10 = (byte *)*puVar18" (identifier "pbVar10") (= "=") (cast_expression "(byte *)*puVar18" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")))) (; ";"))) (expression_statement "pbVar14 = *(byte **)(pcVar15 + 8);" (assignment_expression "pbVar14 = *(byte **)(pcVar15 + 8)" (identifier "pbVar14") (= "=") (pointer_expression "*(byte **)(pcVar15 + 8)" (* "*") (cast_expression "(byte **)(pcVar15 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 8)" (( "(") (binary_expression "pcVar15 + 8" (identifier "pcVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (do_statement "do {\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              } while( true );" (do "do") (compound_statement "{\n                uVar9 = (uint)*pbVar14;\n                if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;\n                pbVar14 = pbVar14 + 1;\n                pbVar10 = pbVar10 + 1;\n              }" ({ "{") (expression_statement "uVar9 = (uint)*pbVar14;" (assignment_expression "uVar9 = (uint)*pbVar14" (identifier "uVar9") (= "=") (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar14"))) (; ";")) (if_statement "if (uVar9 == *pbVar10) {\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }\n                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" (if "if") (parenthesized_expression "(uVar9 == *pbVar10)" (( "(") (binary_expression "uVar9 == *pbVar10" (identifier "uVar9") (== "==") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) () ")")) (compound_statement "{\n                  if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }\n                }" ({ "{") (if_statement "if (uVar9 == 0) {\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar5 = *(ushort *)(puVar18 + 4);\n                    *(ushort *)(puVar18 + 4) = uVar5 | 1;\n                    local_2c = puVar18;\n                    if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }\n                    goto LAB_000c7caf;\n                  }" ({ "{") (expression_statement "uVar5 = *(ushort *)(puVar18 + 4);" (assignment_expression "uVar5 = *(ushort *)(puVar18 + 4)" (identifier "uVar5") (= "=") (pointer_expression "*(ushort *)(puVar18 + 4)" (* "*") (cast_expression "(ushort *)(puVar18 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(ushort *)(puVar18 + 4) = uVar5 | 1;" (assignment_expression "*(ushort *)(puVar18 + 4) = uVar5 | 1" (pointer_expression "*(ushort *)(puVar18 + 4)" (* "*") (cast_expression "(ushort *)(puVar18 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "uVar5 | 1" (identifier "uVar5") (| "|") (number_literal "1"))) (; ";")) (expression_statement "local_2c = puVar18;" (assignment_expression "local_2c = puVar18" (identifier "local_2c") (= "=") (identifier "puVar18")) (; ";")) (if_statement "if ((uVar5 & 0x60) != 0) {\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }" (if "if") (parenthesized_expression "((uVar5 & 0x60) != 0)" (( "(") (binary_expression "(uVar5 & 0x60) != 0" (parenthesized_expression "(uVar5 & 0x60)" (( "(") (binary_expression "uVar5 & 0x60" (identifier "uVar5") (& "&") (number_literal "0x60")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);\n                    }" ({ "{") (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xc58f);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xc58f)" (identifier "FUN_0003d470") (argument_list "(iVar6,unaff_EDI + 0xc58f)" (( "(") (identifier "iVar6") (, ",") (binary_expression "unaff_EDI + 0xc58f" (identifier "unaff_EDI") (+ "+") (number_literal "0xc58f")) () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000c7caf;" (goto "goto") (statement_identifier "LAB_000c7caf") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" (else "else") (if_statement "if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;" (if "if") (parenthesized_expression "(*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10))" (( "(") (binary_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=\n                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + uVar9)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x14ae7 + uVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14ae7 + uVar9)" (( "(") (binary_expression "unaff_EDI + 0x14ae7 + uVar9" (binary_expression "unaff_EDI + 0x14ae7" (identifier "unaff_EDI") (+ "+") (number_literal "0x14ae7")) (+ "+") (identifier "uVar9")) () ")")))) (!= "!=") (pointer_expression "*(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14ae7 + (uint)*pbVar10)" (( "(") (binary_expression "unaff_EDI + 0x14ae7 + (uint)*pbVar10" (binary_expression "unaff_EDI + 0x14ae7" (identifier "unaff_EDI") (+ "+") (number_literal "0x14ae7")) (+ "+") (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar10"))) () ")"))))) () ")")) (goto_statement "goto LAB_000c7f08;" (goto "goto") (statement_identifier "LAB_000c7f08") (; ";"))))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" (else "else") (if_statement "if (cVar11 == 'o') {\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }\n          else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" (if "if") (parenthesized_expression "(cVar11 == 'o')" (( "(") (binary_expression "cVar11 == 'o'" (identifier "cVar11") (== "==") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (compound_statement "{\n            if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }\n          }" ({ "{") (if_statement "if (**(char **)(pcVar15 + 0xc) == 's') {\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }" (if "if") (parenthesized_expression "(**(char **)(pcVar15 + 0xc) == 's')" (( "(") (binary_expression "**(char **)(pcVar15 + 0xc) == 's'" (pointer_expression "**(char **)(pcVar15 + 0xc)" (* "*") (pointer_expression "*(char **)(pcVar15 + 0xc)" (* "*") (cast_expression "(char **)(pcVar15 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0xc)" (( "(") (binary_expression "pcVar15 + 0xc" (identifier "pcVar15") (+ "+") (number_literal "0xc")) () ")"))))) (== "==") (char_literal "'s'" (' "'") (character "s") (' "'"))) () ")")) (compound_statement "{\n              **(char **)(pcVar15 + 0xc) = ';';\n              cVar11 = *pcVar15;\n              goto LAB_000c7ca6;\n            }" ({ "{") (expression_statement "**(char **)(pcVar15 + 0xc) = ';';" (assignment_expression "**(char **)(pcVar15 + 0xc) = ';'" (pointer_expression "**(char **)(pcVar15 + 0xc)" (* "*") (pointer_expression "*(char **)(pcVar15 + 0xc)" (* "*") (cast_expression "(char **)(pcVar15 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0xc)" (( "(") (binary_expression "pcVar15 + 0xc" (identifier "pcVar15") (+ "+") (number_literal "0xc")) () ")"))))) (= "=") (char_literal "';'" (' "'") (character ";") (' "'"))) (; ";")) (expression_statement "cVar11 = *pcVar15;" (assignment_expression "cVar11 = *pcVar15" (identifier "cVar11") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (goto_statement "goto LAB_000c7ca6;" (goto "goto") (statement_identifier "LAB_000c7ca6") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" (else "else") (compound_statement "{\nLAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;\n          }" ({ "{") (labeled_statement "LAB_000c7ca6:\n            if (cVar11 == ';') goto LAB_000c7e93;" (statement_identifier "LAB_000c7ca6") (: ":") (if_statement "if (cVar11 == ';') goto LAB_000c7e93;" (if "if") (parenthesized_expression "(cVar11 == ';')" (( "(") (binary_expression "cVar11 == ';'" (identifier "cVar11") (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto LAB_000c7e93;" (goto "goto") (statement_identifier "LAB_000c7e93") (; ";")))) (} "}")))))) (labeled_statement "LAB_000c7caf:\n          local_50 = local_50 + 1;" (statement_identifier "LAB_000c7caf") (: ":") (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" (identifier "local_50") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "local_4c = local_4c + 4;" (assignment_expression "local_4c = local_4c + 4" (identifier "local_4c") (= "=") (binary_expression "local_4c + 4" (identifier "local_4c") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != local_50)" (( "(") (binary_expression "iVar8 != local_50" (identifier "iVar8") (!= "!=") (identifier "local_50")) () ")")) (; ";")) (if_statement "if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }" (if "if") (parenthesized_expression "((iVar8 == 1) && (local_2c != (undefined4 *)0x0))" (( "(") (binary_expression "(iVar8 == 1) && (local_2c != (undefined4 *)0x0)" (parenthesized_expression "(iVar8 == 1)" (( "(") (binary_expression "iVar8 == 1" (identifier "iVar8") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(local_2c != (undefined4 *)0x0)" (( "(") (binary_expression "local_2c != (undefined4 *)0x0" (identifier "local_2c") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n          uVar5 = *(ushort *)(local_2c + 4);\n          goto LAB_000c7cde;\n        }" ({ "{") (expression_statement "uVar5 = *(ushort *)(local_2c + 4);" (assignment_expression "uVar5 = *(ushort *)(local_2c + 4)" (identifier "uVar5") (= "=") (pointer_expression "*(ushort *)(local_2c + 4)" (* "*") (cast_expression "(ushort *)(local_2c + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + 4)" (( "(") (binary_expression "local_2c + 4" (identifier "local_2c") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_000c7cde;" (goto "goto") (statement_identifier "LAB_000c7cde") (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_000c7e20;" (goto "goto") (statement_identifier "LAB_000c7e20") (; ";")) (} "}"))) (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2)" (identifier "FUN_0003d470") (argument_list "(iVar6,unaff_EDI + 0xe0f3,*puVar2)" (( "(") (identifier "iVar6") (, ",") (binary_expression "unaff_EDI + 0xe0f3" (identifier "unaff_EDI") (+ "+") (number_literal "0xe0f3")) (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) () ")"))) (; ";")) (} "}"))) (goto_statement "goto joined_r0x000c7e74;" (goto "goto") (statement_identifier "joined_r0x000c7e74") (; ";")) (labeled_statement "LAB_000c7f08:\n  iVar17 = iVar17 + 1;" (statement_identifier "LAB_000c7f08") (: ":") (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "puVar18 = puVar18 + 5;" (assignment_expression "puVar18 = puVar18 + 5" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 5" (identifier "puVar18") (+ "+") (number_literal "5"))) (; ";")) (if_statement "if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;" (if "if") (parenthesized_expression "(iVar17 == *(short *)((int)puVar2 + 0x2a))" (( "(") (binary_expression "iVar17 == *(short *)((int)puVar2 + 0x2a)" (identifier "iVar17") (== "==") (pointer_expression "*(short *)((int)puVar2 + 0x2a)" (* "*") (cast_expression "(short *)((int)puVar2 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + 0x2a)" (( "(") (binary_expression "(int)puVar2 + 0x2a" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (number_literal "0x2a")) () ")"))))) () ")")) (goto_statement "goto LAB_000c7caf;" (goto "goto") (statement_identifier "LAB_000c7caf") (; ";"))) (goto_statement "goto LAB_000c7eb8;" (goto "goto") (statement_identifier "LAB_000c7eb8") (; ";")) (labeled_statement "code_r0x000c7d34:\n  if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }" (statement_identifier "code_r0x000c7d34") (: ":") (if_statement "if (param_2 != 1) {\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }" (if "if") (parenthesized_expression "(param_2 != 1)" (( "(") (binary_expression "param_2 != 1" (identifier "param_2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    uVar9 = param_1 << 3 | puVar2[9];\n    uVar16 = (undefined2)iVar17;\n    local_28 = (undefined1)extraout_ECX;\n    if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }\n    cVar11 = (char)piVar12[3];\n    *(char *)(iVar6 + 0xca) = cVar11;\n    if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }\n    goto LAB_000c7e08;\n  }" ({ "{") (expression_statement "uVar9 = param_1 << 3 | puVar2[9];" (assignment_expression "uVar9 = param_1 << 3 | puVar2[9]" (identifier "uVar9") (= "=") (binary_expression "param_1 << 3 | puVar2[9]" (binary_expression "param_1 << 3" (identifier "param_1") (<< "<<") (number_literal "3")) (| "|") (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "uVar16 = (undefined2)iVar17;" (assignment_expression "uVar16 = (undefined2)iVar17" (identifier "uVar16") (= "=") (cast_expression "(undefined2)iVar17" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "iVar17"))) (; ";")) (expression_statement "local_28 = (undefined1)extraout_ECX;" (assignment_expression "local_28 = (undefined1)extraout_ECX" (identifier "local_28") (= "=") (cast_expression "(undefined1)extraout_ECX" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "extraout_ECX"))) (; ";")) (if_statement "if (*(byte *)(iVar6 + 0xcc) < 2) {\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }\n    else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }" (if "if") (parenthesized_expression "(*(byte *)(iVar6 + 0xcc) < 2)" (( "(") (binary_expression "*(byte *)(iVar6 + 0xcc) < 2" (pointer_expression "*(byte *)(iVar6 + 0xcc)" (* "*") (cast_expression "(byte *)(iVar6 + 0xcc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xcc)" (( "(") (binary_expression "iVar6 + 0xcc" (identifier "iVar6") (+ "+") (number_literal "0xcc")) () ")")))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n      if (piVar12 == (int *)0x0) {\n        return;\n      }\n    }" ({ "{") (expression_statement "*(undefined2 *)(puVar2 + 10) = uVar16;" (assignment_expression "*(undefined2 *)(puVar2 + 10) = uVar16" (pointer_expression "*(undefined2 *)(puVar2 + 10)" (* "*") (cast_expression "(undefined2 *)(puVar2 + 10)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 10)" (( "(") (binary_expression "puVar2 + 10" (identifier "puVar2") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar2[9] = uVar9;" (assignment_expression "puVar2[9] = uVar9" (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar2 + 0x32) = local_28;" (assignment_expression "*(undefined1 *)((int)puVar2 + 0x32) = local_28" (pointer_expression "*(undefined1 *)((int)puVar2 + 0x32)" (* "*") (cast_expression "(undefined1 *)((int)puVar2 + 0x32)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + 0x32)" (( "(") (binary_expression "(int)puVar2 + 0x32" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (number_literal "0x32")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (if_statement "if (piVar12 == (int *)0x0) {\n        return;\n      }" (if "if") (parenthesized_expression "(piVar12 == (int *)0x0)" (( "(") (binary_expression "piVar12 == (int *)0x0" (identifier "piVar12") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }" (else "else") (compound_statement "{\n      if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }\n      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }\n      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }\n      *(undefined2 *)(puVar2 + 10) = uVar16;\n      puVar2[9] = uVar9;\n      *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n    }" ({ "{") (if_statement "if (piVar12 == (int *)0x0) {\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }" (if "if") (parenthesized_expression "(piVar12 == (int *)0x0)" (( "(") (binary_expression "piVar12 == (int *)0x0" (identifier "piVar12") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(undefined2 *)(puVar2 + 10) = uVar16;\n        puVar2[9] = uVar9;\n        *(undefined1 *)((int)puVar2 + 0x32) = local_28;\n        return;\n      }" ({ "{") (expression_statement "*(undefined2 *)(puVar2 + 10) = uVar16;" (assignment_expression "*(undefined2 *)(puVar2 + 10) = uVar16" (pointer_expression "*(undefined2 *)(puVar2 + 10)" (* "*") (cast_expression "(undefined2 *)(puVar2 + 10)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 10)" (( "(") (binary_expression "puVar2 + 10" (identifier "puVar2") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar2[9] = uVar9;" (assignment_expression "puVar2[9] = uVar9" (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar2 + 0x32) = local_28;" (assignment_expression "*(undefined1 *)((int)puVar2 + 0x32) = local_28" (pointer_expression "*(undefined1 *)((int)puVar2 + 0x32)" (* "*") (cast_expression "(undefined1 *)((int)puVar2 + 0x32)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + 0x32)" (( "(") (binary_expression "(int)puVar2 + 0x32" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (number_literal "0x32")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (for_statement "for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));\n          iVar17 = *(int *)(iVar17 + 0xc)) {\n      }" (for "for") (( "(") (assignment_expression "iVar17 = piVar12[1]" (identifier "iVar17") (= "=") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]"))) (; ";") (parenthesized_expression "(iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0))" (( "(") (binary_expression "iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0)" (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar17 + 5) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(iVar17 + 5) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar17 + 5) & 0x10)" (( "(") (binary_expression "*(byte *)(iVar17 + 5) & 0x10" (pointer_expression "*(byte *)(iVar17 + 5)" (* "*") (cast_expression "(byte *)(iVar17 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 5)" (( "(") (binary_expression "iVar17 + 5" (identifier "iVar17") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (; ";") (assignment_expression "iVar17 = *(int *)(iVar17 + 0xc)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar17 + 0xc)" (* "*") (cast_expression "(int *)(iVar17 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xc)" (( "(") (binary_expression "iVar17 + 0xc" (identifier "iVar17") (+ "+") (number_literal "0xc")) () ")"))))) () ")") (compound_statement "{\n      }" ({ "{") (} "}"))) (for_statement "for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }" (for "for") (( "(") (assignment_expression "piVar3 = *(int **)(iVar6 + 0x114)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(iVar6 + 0x114)" (* "*") (cast_expression "(int **)(iVar6 + 0x114)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x114)" (( "(") (binary_expression "iVar6 + 0x114" (identifier "iVar6") (+ "+") (number_literal "0x114")) () ")"))))) (; ";") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar3 = (int *)piVar3[3]" (identifier "piVar3") (= "=") (cast_expression "(int *)piVar3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")))) () ")") (compound_statement "{\n        if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }\n      }" ({ "{") (if_statement "if (iVar17 == *piVar3) {\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }" (if "if") (parenthesized_expression "(iVar17 == *piVar3)" (( "(") (binary_expression "iVar17 == *piVar3" (identifier "iVar17") (== "==") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) () ")")) (compound_statement "{\n          *piVar3 = (int)(puVar2 + 10);\n          break;\n        }" ({ "{") (expression_statement "*piVar3 = (int)(puVar2 + 10);" (assignment_expression "*piVar3 = (int)(puVar2 + 10)" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)(puVar2 + 10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar2 + 10)" (( "(") (binary_expression "puVar2 + 10" (identifier "puVar2") (+ "+") (number_literal "10")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (expression_statement "*(undefined2 *)(puVar2 + 10) = uVar16;" (assignment_expression "*(undefined2 *)(puVar2 + 10) = uVar16" (pointer_expression "*(undefined2 *)(puVar2 + 10)" (* "*") (cast_expression "(undefined2 *)(puVar2 + 10)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 10)" (( "(") (binary_expression "puVar2 + 10" (identifier "puVar2") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar2[9] = uVar9;" (assignment_expression "puVar2[9] = uVar9" (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar2 + 0x32) = local_28;" (assignment_expression "*(undefined1 *)((int)puVar2 + 0x32) = local_28" (pointer_expression "*(undefined1 *)((int)puVar2 + 0x32)" (* "*") (cast_expression "(undefined1 *)((int)puVar2 + 0x32)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + 0x32)" (( "(") (binary_expression "(int)puVar2 + 0x32" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (number_literal "0x32")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (} "}")))) (expression_statement "cVar11 = (char)piVar12[3];" (assignment_expression "cVar11 = (char)piVar12[3]" (identifier "cVar11") (= "=") (cast_expression "(char)piVar12[3]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar12[3]" (identifier "piVar12") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "*(char *)(iVar6 + 0xca) = cVar11;" (assignment_expression "*(char *)(iVar6 + 0xca) = cVar11" (pointer_expression "*(char *)(iVar6 + 0xca)" (* "*") (cast_expression "(char *)(iVar6 + 0xca)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xca)" (( "(") (binary_expression "iVar6 + 0xca" (identifier "iVar6") (+ "+") (number_literal "0xca")) () ")")))) (= "=") (identifier "cVar11")) (; ";")) (if_statement "if (0 < *piVar12) {\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }" (if "if") (parenthesized_expression "(0 < *piVar12)" (( "(") (binary_expression "0 < *piVar12" (number_literal "0") (< "<") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) () ")")) (compound_statement "{\n      iVar17 = 0;\n      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }\n      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }\n      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);\n    }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)piVar12 + 0xd) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar12 + 0xd) & 0x20)" (( "(") (binary_expression "*(byte *)((int)piVar12 + 0xd) & 0x20" (pointer_expression "*(byte *)((int)piVar12 + 0xd)" (* "*") (cast_expression "(byte *)((int)piVar12 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0xd)" (( "(") (binary_expression "(int)piVar12 + 0xd" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0xd")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);\n        cVar11 = (char)piVar12[iVar17 * 4 + 3];\n      }" ({ "{") (do_statement "do {\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);" (do "do") (compound_statement "{\n          iVar17 = iVar17 + 1;\n          if (*piVar12 == iVar17) goto LAB_000c7e08;\n        }" ({ "{") (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*piVar12 == iVar17) goto LAB_000c7e08;" (if "if") (parenthesized_expression "(*piVar12 == iVar17)" (( "(") (binary_expression "*piVar12 == iVar17" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (== "==") (identifier "iVar17")) () ")")) (goto_statement "goto LAB_000c7e08;" (goto "goto") (statement_identifier "LAB_000c7e08") (; ";"))) (} "}")) (while "while") (parenthesized_expression "((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20)" (( "(") (binary_expression "*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20" (pointer_expression "*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd)" (* "*") (cast_expression "(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + iVar17 * 0x10 + 0xd)" (( "(") (binary_expression "(int)piVar12 + iVar17 * 0x10 + 0xd" (binary_expression "(int)piVar12 + iVar17 * 0x10" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (binary_expression "iVar17 * 0x10" (identifier "iVar17") (* "*") (number_literal "0x10"))) (+ "+") (number_literal "0xd")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "cVar11 = (char)piVar12[iVar17 * 4 + 3];" (assignment_expression "cVar11 = (char)piVar12[iVar17 * 4 + 3]" (identifier "cVar11") (= "=") (cast_expression "(char)piVar12[iVar17 * 4 + 3]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar12[iVar17 * 4 + 3]" (identifier "piVar12") ([ "[") (binary_expression "iVar17 * 4 + 3" (binary_expression "iVar17 * 4" (identifier "iVar17") (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) (; ";")) (} "}"))) (if_statement "if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {\n        iVar17 = unaff_EDI + 0x9c3b;\n      }" (if "if") (parenthesized_expression "((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03'))" (( "(") (binary_expression "(cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')" (parenthesized_expression "(cVar11 == '\0')" (( "(") (binary_expression "cVar11 == '\0'" (identifier "cVar11") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')" (( "(") (comma_expression "iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03'" (assignment_expression "iVar17 = unaff_EDI + 0x9c41" (identifier "iVar17") (= "=") (binary_expression "unaff_EDI + 0x9c41" (identifier "unaff_EDI") (+ "+") (number_literal "0x9c41"))) (, ",") (binary_expression "cVar11 == '\x03'" (identifier "cVar11") (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'")))) () ")"))) () ")")) (compound_statement "{\n        iVar17 = unaff_EDI + 0x9c3b;\n      }" ({ "{") (expression_statement "iVar17 = unaff_EDI + 0x9c3b;" (assignment_expression "iVar17 = unaff_EDI + 0x9c3b" (identifier "iVar17") (= "=") (binary_expression "unaff_EDI + 0x9c3b" (identifier "unaff_EDI") (+ "+") (number_literal "0x9c3b"))) (; ";")) (} "}"))) (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17)" (identifier "FUN_0003d470") (argument_list "(iVar6,unaff_EDI + 0x9c46,iVar17)" (( "(") (identifier "iVar6") (, ",") (binary_expression "unaff_EDI + 0x9c46" (identifier "unaff_EDI") (+ "+") (number_literal "0x9c46")) (, ",") (identifier "iVar17") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000c7e08;" (goto "goto") (statement_identifier "LAB_000c7e08") (; ";")) (} "}")))) (labeled_statement "LAB_000c7e20:\n  if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }" (statement_identifier "LAB_000c7e20") (: ":") (if_statement "if (param_1 == 0) {\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);\n    return;\n  }" ({ "{") (expression_statement "FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);" (call_expression "FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2)" (identifier "FUN_000c6680") (argument_list "(0,piVar12,extraout_ECX,0,0,param_2,0,2)" (( "(") (number_literal "0") (, ",") (identifier "piVar12") (, ",") (identifier "extraout_ECX") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (number_literal "2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "FUN_0003d470(iVar6,unaff_EDI + 0xe11f);" (call_expression "FUN_0003d470(iVar6,unaff_EDI + 0xe11f)" (identifier "FUN_0003d470") (argument_list "(iVar6,unaff_EDI + 0xe11f)" (( "(") (identifier "iVar6") (, ",") (binary_expression "unaff_EDI + 0xe11f" (identifier "unaff_EDI") (+ "+") (number_literal "0xe11f")) () ")"))) (; ";")) (labeled_statement "joined_r0x000c7e74:\n  if (piVar12 == (int *)0x0) {\n    return;\n  }" (statement_identifier "joined_r0x000c7e74") (: ":") (if_statement "if (piVar12 == (int *)0x0) {\n    return;\n  }" (if "if") (parenthesized_expression "(piVar12 == (int *)0x0)" (( "(") (binary_expression "piVar12 == (int *)0x0" (identifier "piVar12") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (labeled_statement "LAB_000c7e08:\n  FUN_00054000();" (statement_identifier "LAB_000c7e08") (: ":") (expression_statement "FUN_00054000();" (call_expression "FUN_00054000()" (identifier "FUN_00054000") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *var_26,type_2 *var_24,int onError,int autoInc,int sortOrder)

{
  type_3 var_5;
  type_4 *var_2;
  type_5 *var_15;
  type_6 *var_25;
  type_7 *pcVar5;
  type_3 var_8;
  type_1 *pParse_00;
  size_t var_11;
  int var_12;
  type_8 *pName2;
  type_9 var_14;
  type_10 *var_19;
  type_11 var_17;
  type_2 *var_3;
  type_9 var_13;
  type_10 *var_18;
  char *var_10;
  type_12 iVar15;
  int var_4;
  type_13 *var_23;
  int var_7;
  type_14 uVar18;
  int in_stack_ffffffa4;
  int in_stack_ffffffa8;
  type_11 in_stack_ffffffac;
  int var_20;
  type_15 *var_21;
  type_13 *var_22;
  type_11 local_28;
  
  uVar18 = var_1();
  var_3 = (type_2 *)((type_16)uVar18 >> 0x20);
  pParse_00 = (type_1 *)uVar18;
  var_2 = pParse_00->pNewTable;
  if (var_2 != (type_4 *)0x0) {
    if ((var_2->tabFlags & 4) == 0) {
      var_2->tabFlags = var_2->tabFlags | 4;
      if (var_3 == (type_2 *)0x0) {
        var_4 = var_2->nCol + -1;
        var_22 = var_2->aCol + var_4;
        var_5 = var_22->colFlags;
        var_8 = var_5 | 1;
        var_22->colFlags = var_8;
        if ((var_5 & 0x60) != 0) {
          var_6(pParse_00,(char *)(var_7 + 0xc58f));
          var_8 = var_22->colFlags;
        }
LAB_000c7cde:
        var_10 = (char *)(var_7 + 0xa9b7);
        if ((var_8 & 4) != 0) {
          var_10 = var_22->zName;
          var_11 = var_9(var_10);
          var_10 = var_10 + var_11 + 1;
        }
        var_12 = 0;
        do {
          var_13 = (type_9)(type_10)var_10[var_12];
          var_14 = (type_9)*(type_10 *)(var_12 + var_7 + 0x9d2b);
          if (var_13 == var_14) {
            if (var_13 == 0) goto code_r0x000c7d34;
          }
          else if (*(char *)(var_7 + 0x14ae7 + var_13) != *(char *)(var_7 + 0x14ae7 + var_14)
                  ) goto LAB_000c7e20;
          var_12 = var_12 + 1;
        } while( true );
      }
      var_12 = var_3->nExpr;
      if (0 < var_12) {
        var_21 = var_3->a;
        var_20 = 0;
        var_4 = -1;
        var_22 = (type_13 *)0x0;
        do {
          var_15 = var_21->pExpr;
          while( true ) {
            if (var_15 == (type_5 *)0x0) {
                    /* WARNING: Does not return */
              pcVar5 = (type_7 *)var_16();
              (*pcVar5)();
            }
            if ((var_15->flags & 0x1000) == 0) break;
            var_15 = var_15->pLeft;
          }
          var_17 = var_15->op;
          if (var_17 == 's') {
            var_15->op = ';';
LAB_000c7e93:
            if (0 < var_2->nCol) {
              var_23 = var_2->aCol;
              var_4 = 0;
LAB_000c7eb8:
              var_19 = (type_10 *)var_23->zName;
              var_18 = (type_10 *)(var_15->u).zToken;
              do {
                var_14 = (type_9)*var_18;
                if (var_14 == *var_19) {
                  if (var_14 == 0) {
                    var_8 = var_23->colFlags;
                    var_23->colFlags = var_8 | 1;
                    var_22 = var_23;
                    if ((var_8 & 0x60) != 0) {
                      var_6(pParse_00,(char *)(var_7 + 0xc58f));
                    }
                    goto LAB_000c7caf;
                  }
                }
                else if (*(char *)(var_7 + 0x14ae7 + var_14) !=
                         *(char *)(var_7 + 0x14ae7 + (type_9)*var_19)) goto LAB_000c7f08;
                var_18 = var_18 + 1;
                var_19 = var_19 + 1;
              } while( true );
            }
            var_4 = 0;
          }
          else if (var_17 == 'o') {
            if (var_15->pLeft->op == 's') {
              var_15->pLeft->op = ';';
              var_17 = var_15->op;
              goto LAB_000c7ca6;
            }
          }
          else {
LAB_000c7ca6:
            if (var_17 == ';') goto LAB_000c7e93;
          }
LAB_000c7caf:
          var_20 = var_20 + 1;
          var_21 = var_21 + 1;
        } while (var_12 != var_20);
        if ((var_12 == 1) && (var_22 != (type_13 *)0x0)) {
          var_8 = var_22->colFlags;
          goto LAB_000c7cde;
        }
      }
      goto LAB_000c7e20;
    }
    var_6(pParse_00,(char *)(var_7 + 0xe0f3),var_2->zName);
  }
  goto joined_r0x000c7e74;
LAB_000c7f08:
  var_4 = var_4 + 1;
  var_23 = var_23 + 1;
  if (var_4 == var_2->nCol) goto LAB_000c7caf;
  goto LAB_000c7eb8;
code_r0x000c7d34:
  if (var_24 != (type_2 *)&DAT_00000001) {
    var_14 = (int)var_26 << 3 | var_2->tabFlags;
    iVar15 = (type_12)var_4;
    local_28 = (type_11)pName2;
    if (pParse_00->eParseMode < 2) {
      var_2->iPKey = iVar15;
      var_2->tabFlags = var_14;
      var_2->keyConf = local_28;
      if (var_3 == (type_2 *)0x0) {
        return;
      }
    }
    else {
      if (var_3 == (type_2 *)0x0) {
        var_2->iPKey = iVar15;
        var_2->tabFlags = var_14;
        var_2->keyConf = local_28;
        return;
      }
      for (var_15 = var_3->a[0].pExpr; (var_15 != (type_5 *)0x0 && ((var_15->flags & 0x1000) != 0))
          ; var_15 = var_15->pLeft) {
      }
      for (var_25 = pParse_00->pRename; var_25 != (type_6 *)0x0; var_25 = var_25->pNext) {
        if (var_15 == (type_5 *)var_25->p) {
          var_25->p = &var_2->iPKey;
          break;
        }
      }
      var_2->iPKey = iVar15;
      var_2->tabFlags = var_14;
      var_2->keyConf = local_28;
    }
    var_17 = var_3->a[0].sortFlags;
    pParse_00->iPkSortOrder = var_17;
    if (0 < var_3->nExpr) {
      var_4 = 0;
      if ((var_3->a[0].field_0x9 & 0x20) == 0) {
        do {
          var_12 = var_4;
          if (var_3->nExpr == var_12 + 1) goto LAB_000c7e08;
          var_4 = var_12 + 1;
        } while (((type_9)var_3[1].a[var_12].zEName & 0x2000) == 0);
        var_17 = *(type_11 *)&var_3[1].a[var_12].zEName;
      }
      if ((var_17 == '\0') || (var_4 = var_7 + 0x9c41, var_17 == '\x03')) {
        var_4 = var_7 + 0x9c3b;
      }
      var_6(pParse_00,(char *)(var_7 + 0x9c46),var_4);
    }
    goto LAB_000c7e08;
  }
LAB_000c7e20:
  if (var_26 == (type_1 *)0x0) {
    var_27((type_1 *)0x0,(type_8 *)var_3,pName2,(type_17 *)0x0,(type_2 *)0x0,
                       (int)var_24,(type_8 *)0x0,(type_5 *)0x2,in_stack_ffffffa4,in_stack_ffffffa8,
                       in_stack_ffffffac);
    return;
  }
  var_6(pParse_00,(char *)(var_7 + 0xe11f));
joined_r0x000c7e74:
  if (var_3 == (type_2 *)0x0) {
    return;
  }
LAB_000c7e08:
  var_28(pParse_00->db,var_3);
  return;
}


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

void MASKED(int param_1,int param_2)

{
  ushort uVar1;
  undefined4 *puVar2;
  int *piVar3;
  code *pcVar4;
  ushort uVar5;
  int iVar6;
  size_t sVar7;
  int iVar8;
  undefined4 extraout_ECX;
  uint uVar9;
  byte *pbVar10;
  char cVar11;
  int *piVar12;
  uint uVar13;
  byte *pbVar14;
  char *pcVar15;
  undefined2 uVar16;
  int iVar17;
  undefined4 *puVar18;
  int unaff_EDI;
  undefined8 uVar19;
  int local_50;
  int *local_4c;
  undefined4 *local_2c;
  undefined1 local_28;
  
  uVar19 = FUN_000d0aaf();
  piVar12 = (int *)((ulonglong)uVar19 >> 0x20);
  iVar6 = (int)uVar19;
  puVar2 = *(undefined4 **)(iVar6 + 0xe8);
  if (puVar2 != (undefined4 *)0x0) {
    if ((puVar2[9] & 4) == 0) {
      puVar2[9] = puVar2[9] | 4;
      if (piVar12 == (int *)0x0) {
        iVar17 = *(short *)((int)puVar2 + 0x2a) + -1;
        local_2c = (undefined4 *)(puVar2[1] + iVar17 * 0x14);
        uVar1 = *(ushort *)(local_2c + 4);
        uVar5 = uVar1 | 1;
        *(ushort *)(local_2c + 4) = uVar5;
        if ((uVar1 & 0x60) != 0) {
          FUN_0003d470(iVar6,unaff_EDI + 0xc58f);
          uVar5 = *(ushort *)(local_2c + 4);
        }
LAB_000c7cde:
        pcVar15 = (char *)(unaff_EDI + 0xa9b7);
        if ((uVar5 & 4) != 0) {
          pcVar15 = (char *)*local_2c;
          sVar7 = strlen(pcVar15);
          pcVar15 = pcVar15 + sVar7 + 1;
        }
        iVar8 = 0;
        do {
          uVar13 = (uint)(byte)pcVar15[iVar8];
          uVar9 = (uint)*(byte *)(iVar8 + unaff_EDI + 0x9d2b);
          if (uVar13 == uVar9) {
            if (uVar13 == 0) goto code_r0x000c7d34;
          }
          else if (*(char *)(unaff_EDI + 0x14ae7 + uVar13) != *(char *)(unaff_EDI + 0x14ae7 + uVar9)
                  ) goto LAB_000c7e20;
          iVar8 = iVar8 + 1;
        } while( true );
      }
      iVar8 = *piVar12;
      if (0 < iVar8) {
        local_4c = piVar12 + 1;
        local_50 = 0;
        iVar17 = -1;
        local_2c = (undefined4 *)0x0;
        do {
          pcVar15 = (char *)*local_4c;
          while( true ) {
            if (pcVar15 == (char *)0x0) {
                    /* WARNING: Does not return */
              pcVar4 = (code *)invalidInstructionException();
              (*pcVar4)();
            }
            if ((pcVar15[5] & 0x10U) == 0) break;
            pcVar15 = *(char **)(pcVar15 + 0xc);
          }
          cVar11 = *pcVar15;
          if (cVar11 == 's') {
            *pcVar15 = ';';
LAB_000c7e93:
            if (0 < *(short *)((int)puVar2 + 0x2a)) {
              puVar18 = (undefined4 *)puVar2[1];
              iVar17 = 0;
LAB_000c7eb8:
              pbVar10 = (byte *)*puVar18;
              pbVar14 = *(byte **)(pcVar15 + 8);
              do {
                uVar9 = (uint)*pbVar14;
                if (uVar9 == *pbVar10) {
                  if (uVar9 == 0) {
                    uVar5 = *(ushort *)(puVar18 + 4);
                    *(ushort *)(puVar18 + 4) = uVar5 | 1;
                    local_2c = puVar18;
                    if ((uVar5 & 0x60) != 0) {
                      FUN_0003d470(iVar6,unaff_EDI + 0xc58f);
                    }
                    goto LAB_000c7caf;
                  }
                }
                else if (*(char *)(unaff_EDI + 0x14ae7 + uVar9) !=
                         *(char *)(unaff_EDI + 0x14ae7 + (uint)*pbVar10)) goto LAB_000c7f08;
                pbVar14 = pbVar14 + 1;
                pbVar10 = pbVar10 + 1;
              } while( true );
            }
            iVar17 = 0;
          }
          else if (cVar11 == 'o') {
            if (**(char **)(pcVar15 + 0xc) == 's') {
              **(char **)(pcVar15 + 0xc) = ';';
              cVar11 = *pcVar15;
              goto LAB_000c7ca6;
            }
          }
          else {
LAB_000c7ca6:
            if (cVar11 == ';') goto LAB_000c7e93;
          }
LAB_000c7caf:
          local_50 = local_50 + 1;
          local_4c = local_4c + 4;
        } while (iVar8 != local_50);
        if ((iVar8 == 1) && (local_2c != (undefined4 *)0x0)) {
          uVar5 = *(ushort *)(local_2c + 4);
          goto LAB_000c7cde;
        }
      }
      goto LAB_000c7e20;
    }
    FUN_0003d470(iVar6,unaff_EDI + 0xe0f3,*puVar2);
  }
  goto joined_r0x000c7e74;
LAB_000c7f08:
  iVar17 = iVar17 + 1;
  puVar18 = puVar18 + 5;
  if (iVar17 == *(short *)((int)puVar2 + 0x2a)) goto LAB_000c7caf;
  goto LAB_000c7eb8;
code_r0x000c7d34:
  if (param_2 != 1) {
    uVar9 = param_1 << 3 | puVar2[9];
    uVar16 = (undefined2)iVar17;
    local_28 = (undefined1)extraout_ECX;
    if (*(byte *)(iVar6 + 0xcc) < 2) {
      *(undefined2 *)(puVar2 + 10) = uVar16;
      puVar2[9] = uVar9;
      *(undefined1 *)((int)puVar2 + 0x32) = local_28;
      if (piVar12 == (int *)0x0) {
        return;
      }
    }
    else {
      if (piVar12 == (int *)0x0) {
        *(undefined2 *)(puVar2 + 10) = uVar16;
        puVar2[9] = uVar9;
        *(undefined1 *)((int)puVar2 + 0x32) = local_28;
        return;
      }
      for (iVar17 = piVar12[1]; (iVar17 != 0 && ((*(byte *)(iVar17 + 5) & 0x10) != 0));
          iVar17 = *(int *)(iVar17 + 0xc)) {
      }
      for (piVar3 = *(int **)(iVar6 + 0x114); piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {
        if (iVar17 == *piVar3) {
          *piVar3 = (int)(puVar2 + 10);
          break;
        }
      }
      *(undefined2 *)(puVar2 + 10) = uVar16;
      puVar2[9] = uVar9;
      *(undefined1 *)((int)puVar2 + 0x32) = local_28;
    }
    cVar11 = (char)piVar12[3];
    *(char *)(iVar6 + 0xca) = cVar11;
    if (0 < *piVar12) {
      iVar17 = 0;
      if ((*(byte *)((int)piVar12 + 0xd) & 0x20) == 0) {
        do {
          iVar17 = iVar17 + 1;
          if (*piVar12 == iVar17) goto LAB_000c7e08;
        } while ((*(byte *)((int)piVar12 + iVar17 * 0x10 + 0xd) & 0x20) == 0);
        cVar11 = (char)piVar12[iVar17 * 4 + 3];
      }
      if ((cVar11 == '\0') || (iVar17 = unaff_EDI + 0x9c41, cVar11 == '\x03')) {
        iVar17 = unaff_EDI + 0x9c3b;
      }
      FUN_0003d470(iVar6,unaff_EDI + 0x9c46,iVar17);
    }
    goto LAB_000c7e08;
  }
LAB_000c7e20:
  if (param_1 == 0) {
    FUN_000c6680(0,piVar12,extraout_ECX,0,0,param_2,0,2);
    return;
  }
  FUN_0003d470(iVar6,unaff_EDI + 0xe11f);
joined_r0x000c7e74:
  if (piVar12 == (int *)0x0) {
    return;
  }
LAB_000c7e08:
  FUN_00054000();
  return;
}

