
int sqlite3InitOne(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)

{
  u16 *puVar1;
  ushort *puVar2;
  undefined1 *puVar3;
  int iVar4;
  u8 uVar5;
  uint uVar6;
  sqlite3_xauth zSql;
  Schema *p;
  uint uVar7;
  bool bVar8;
  longlong lVar9;
  char **ppcVar10;
  sqlite3 *db_00;
  int iVar11;
  int iVar12;
  char *pcVar13;
  Btree *pBVar14;
  char **pz;
  int *extraout_ECX;
  int *piVar15;
  int iVar16;
  byte bVar17;
  int extraout_EDX;
  int extraout_EDX_00;
  int extraout_EDX_01;
  BtShared *pBVar18;
  BtShared *pBVar19;
  int *piVar20;
  int iVar21;
  int unaff_EDI;
  int in_GS_OFFSET;
  bool bVar22;
  longlong lVar23;
  sqlite3 *pData;
  Vdbe *pOld;
  Btree *in_stack_ffffff84;
  char *in_stack_ffffff88;
  int iVar24;
  int *piVar25;
  u8 local_70;
  sqlite3_stmt *pStmt;
  InitData initData;
  int meta [5];
  
  lVar23 = __x86_get_pc_thunk_di();
  iVar21 = (int)((ulonglong)lVar23 >> 0x20);
  db_00 = (sqlite3 *)lVar23;
  iVar4 = *(int *)(in_GS_OFFSET + 0x14);
  (db_00->init).busy = '\x01';
  iVar11 = unaff_EDI + 0x70515;
  if (iVar21 == 1) {
    iVar11 = unaff_EDI + 0x7083b;
  }
  piVar20 = (int *)(iVar21 * 0x10);
  initData.rc = 0;
  initData.mInitFlags = (u32)db;
  initData.nInitRow = 1;
  puVar1 = &(db_00->aDb[iVar21].pSchema)->schemaFlags;
  *puVar1 = *puVar1 & 0xfffb;
  lVar9 = lVar23;
  if (db_00->mallocFailed == '\0') {
    initData.db = db_00;
    initData.iDb = iVar21;
    iVar12 = sqlite3_strnicmp((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7);
    lVar9 = CONCAT44(initData.iDb,initData.db);
    if (iVar12 != 0) goto LAB_000e9efd;
    local_70 = (u8)((ulonglong)lVar23 >> 0x20);
    uVar5 = (db_00->init).iDb;
    pOld = (Vdbe *)&pStmt;
    pStmt = (sqlite3_stmt *)0x0;
    (db_00->init).iDb = local_70;
    sqlite3GetInt32((char *)(unaff_EDI + 0x74f14),(int *)pOld);
    puVar3 = &(db_00->init).field_0x6;
    *puVar3 = *puVar3 & 0xfe;
    (db_00->init).newTnum = (int)pStmt;
    pcVar13 = (char *)0x0;
    sqlite3LockAndPrepare
              (db_00,(char *)(unaff_EDI + 0x81141),0,0,pOld,(sqlite3_stmt **)0x0,
               (char **)in_stack_ffffff84);
    iVar12 = db_00->errCode;
    (db_00->init).iDb = uVar5;
    if ((iVar12 != 0) && (((db_00->init).field_0x6 & 1) == 0)) {
      initData.rc = iVar12;
      if (iVar12 == 7) {
        uVar6._0_1_ = db_00->temp_store;
        uVar6._1_1_ = db_00->mallocFailed;
        uVar6._2_1_ = db_00->bBenignMalloc;
        uVar6._3_1_ = db_00->dfltLockMode;
        if ((uVar6 & 0xffff00) == 0) {
          sqlite3OomFault(db_00);
        }
      }
      else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {
        pData = db_00;
        sqlite3_errmsg(db_00);
        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);
      }
    }
    sqlite3_finalize(pStmt);
    iVar12 = extraout_EDX_01;
    iVar16 = initData.rc;
  }
  else {
LAB_000e9efd:
    initData.iDb = (int)((ulonglong)lVar9 >> 0x20);
    initData.db = (sqlite3 *)lVar9;
    corruptSchema((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20);
    iVar12 = extraout_EDX;
    iVar16 = initData.rc;
  }
  piVar25 = piVar20;
  initData.rc = iVar16;
  if (iVar16 != 0) goto LAB_000ea327;
  ppcVar10 = &db_00->aDb->zDbSName;
  pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
  if (pBVar14 == (Btree *)0x0) {
    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;
    *puVar1 = *puVar1 | 1;
    goto LAB_000ea236;
  }
  piVar15 = piVar20;
  iVar24 = iVar16;
  if (pBVar14->sharable != '\0') {
    sqlite3BtreeEnter(pBVar14);
    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
    piVar15 = extraout_ECX;
    iVar12 = extraout_EDX_00;
    iVar24 = iVar16;
  }
  bVar8 = false;
  if (pBVar14->inTrans == '\0') {
    iVar16 = sqlite3BtreeBeginTrans(pBVar14,iVar12,piVar15);
    if (iVar16 == 0) {
      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
      bVar8 = true;
      uVar5 = pBVar14->sharable;
      pBVar19 = pBVar14->pBt;
      goto joined_r0x000ea4e3;
    }
    pcVar13 = sqlite3ErrStr(iVar16);
    sqlite3SetString(pz,db_00,pcVar13);
    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
    if (pBVar14->sharable != '\0') {
      piVar20 = &pBVar14->wantToLock;
      *piVar20 = *piVar20 + -1;
      if (*piVar20 != 0) goto LAB_000ea327;
      goto LAB_000ea658;
    }
  }
  else {
    uVar5 = pBVar14->sharable;
    pBVar19 = pBVar14->pBt;
joined_r0x000ea4e3:
    if (uVar5 == '\0') {
      pBVar18 = pBVar14->pBt;
      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);
      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
      if (pBVar14->sharable == '\0') goto LAB_000ea505;
LAB_000e9f97:
      pBVar14->wantToLock = pBVar14->wantToLock + 1;
      if (pBVar14->locked == '\0') {
        btreeLockCarefully(in_stack_ffffff84);
        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);
        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;
      }
      else {
        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);
        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
LAB_000e9fc9:
        piVar15 = &pBVar14->wantToLock;
        *piVar15 = *piVar15 + -1;
        if (*piVar15 == 0) {
          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);
        }
      }
      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
      pBVar19 = pBVar14->pBt;
      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;
LAB_000ea521:
      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);
      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
      if (pBVar14->sharable == '\0') goto LAB_000ea53d;
LAB_000ea031:
      pBVar14->wantToLock = pBVar14->wantToLock + 1;
      if ((pBVar14->locked != '\0') ||
         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {
        piVar15 = &pBVar14->wantToLock;
        *piVar15 = *piVar15 + -1;
        if (*piVar15 == 0) {
          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);
        }
      }
      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
      pBVar19 = pBVar14->pBt;
      if (pBVar14->sharable != '\0') goto LAB_000ea07f;
LAB_000ea559:
      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);
      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
    }
    else {
      pBVar14->wantToLock = pBVar14->wantToLock + 1;
      if (pBVar14->locked == '\0') {
        btreeLockCarefully(in_stack_ffffff84);
        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);
        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;
      }
      else {
        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);
        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
LAB_000e9f7d:
        piVar15 = &pBVar14->wantToLock;
        *piVar15 = *piVar15 + -1;
        if (*piVar15 == 0) {
          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);
        }
      }
      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
      pBVar18 = pBVar14->pBt;
      if (pBVar14->sharable != '\0') goto LAB_000e9f97;
LAB_000ea505:
      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);
      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
      pBVar19 = pBVar14->pBt;
      if (pBVar14->sharable == '\0') goto LAB_000ea521;
LAB_000e9fe3:
      pBVar14->wantToLock = pBVar14->wantToLock + 1;
      if (pBVar14->locked == '\0') {
        btreeLockCarefully(in_stack_ffffff84);
        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);
        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
        if (pBVar14->sharable != '\0') goto LAB_000ea017;
      }
      else {
        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);
        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
LAB_000ea017:
        piVar15 = &pBVar14->wantToLock;
        *piVar15 = *piVar15 + -1;
        if (*piVar15 == 0) {
          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);
        }
      }
      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
      if (pBVar14->sharable != '\0') goto LAB_000ea031;
LAB_000ea53d:
      pBVar19 = pBVar14->pBt;
      if (pBVar14->sharable == '\0') goto LAB_000ea559;
LAB_000ea07f:
      pBVar14->wantToLock = pBVar14->wantToLock + 1;
      if (pBVar14->locked == '\0') {
        btreeLockCarefully(in_stack_ffffff84);
        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);
        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;
      }
      else {
        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);
        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
      }
      piVar15 = &pBVar14->wantToLock;
      *piVar15 = *piVar15 + -1;
      if (*piVar15 == 0) {
        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);
      }
    }
LAB_000ea0bd:
    if ((db_00->flags & 0x2000000) == 0) {
      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];
      if (meta[4] == 0) goto LAB_000ea449;
      if (iVar21 == 0) {
        bVar17 = (byte)(meta[4] & 3U);
        if ((meta[4] & 3U) == 0) {
          bVar17 = 1;
        }
        db_00->enc = bVar17;
        goto LAB_000ea0f8;
      }
      bVar17 = db_00->enc;
      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;
      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));
      iVar16 = 1;
LAB_000ea20b:
      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
    }
    else {
      meta[1] = 0;
      meta[2] = 0;
      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;
LAB_000ea449:
      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);
      *puVar2 = *puVar2 | 4;
      bVar17 = db_00->enc;
LAB_000ea0f8:
      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;
      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));
      if (*(int *)(iVar12 + 0x50) == 0) {
        if (meta[2] < 0) {
          iVar16 = -meta[2];
          bVar22 = meta[2] != -0x80000000;
          meta[2] = 0x7fffffff;
          if (bVar22) {
            meta[2] = iVar16;
          }
        }
        else if (meta[2] == 0) {
          meta[2] = -2000;
        }
        *(int *)(iVar12 + 0x50) = meta[2];
        sqlite3BtreeSetCacheSize
                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),
                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));
        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));
      }
      *(char *)(iVar12 + 0x4c) = (char)meta[1];
      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);
      if (bVar17 == 0) {
        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;
        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);
      }
      if (4 < bVar17) {
        if (*pz != (char *)0x0) {
          sqlite3DbFreeNN(db_00,*pz);
        }
        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));
        iVar16 = 1;
        *pz = pcVar13;
        goto LAB_000ea20b;
      }
      if ((iVar21 == 0) && (3 < meta[1])) {
        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;
      }
      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),
                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);
      zSql = db_00->xAuth;
      db_00->xAuth = (sqlite3_xauth)0x0;
      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,
                            pcVar13,(char **)(unaff_EDI + 0x16af9));
      db_00->xAuth = zSql;
      if (iVar16 == 0) {
        iVar16 = initData.rc;
        if (pcVar13 != (char *)0x0) {
LAB_000ea1da:
          sqlite3DbFreeNN(db_00,pcVar13);
        }
        if (iVar16 != 0) goto LAB_000ea1eb;
        sqlite3AnalysisLoad(db_00,iVar21);
        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;
      }
      else {
        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;
LAB_000ea1eb:
        if (db_00->mallocFailed != '\0') {
LAB_000ea1f1:
          iVar16 = 7;
          sqlite3ResetAllSchemasOfConnection(db_00);
        }
        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;
      }
      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);
      *puVar2 = *puVar2 | 1;
      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
      iVar16 = iVar24;
    }
    if (bVar8) {
      sqlite3BtreeCommit(pBVar14);
      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));
    }
    if (pBVar14->sharable != '\0') {
      piVar20 = &pBVar14->wantToLock;
      *piVar20 = *piVar20 + -1;
      if (*piVar20 == 0) {
LAB_000ea658:
        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);
      }
    }
    if (iVar16 == 0) goto LAB_000ea236;
  }
LAB_000ea327:
  if (((iVar16 == 7) || (iVar16 == 0xc0a)) &&
     (uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,
     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0)
     ) {
    sqlite3OomFault(db_00);
  }
  if (-1 < lVar23) {
    puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);
    *puVar2 = *puVar2 | 8;
    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;
    *puVar1 = *puVar1 | 8;
    db_00->mDbFlags = db_00->mDbFlags & 0xfffffff7;
  }
  if ((db_00->nSchemaLock == 0) && (iVar11 = db_00->nDb, 0 < iVar11)) {
    iVar21 = 0;
    do {
      p = db_00->aDb[iVar21].pSchema;
      bVar17 = (byte)p->schemaFlags;
      while ((bVar17 & 8) == 0) {
        iVar21 = iVar21 + 1;
        if (iVar11 <= iVar21) goto LAB_000ea236;
        p = db_00->aDb[iVar21].pSchema;
        bVar17 = (byte)p->schemaFlags;
      }
      iVar21 = iVar21 + 1;
      sqlite3SchemaClear(p);
      iVar11 = db_00->nDb;
    } while (iVar21 < iVar11);
  }
LAB_000ea236:
  (db_00->init).busy = '\0';
  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar16;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



int FUN_000e9e50(undefined4 param_1)

{
  ushort *puVar1;
  int *piVar2;
  int iVar3;
  char cVar4;
  undefined1 uVar5;
  undefined4 uVar6;
  bool bVar7;
  longlong lVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int *extraout_ECX;
  byte bVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  int iVar17;
  int iVar18;
  int unaff_EDI;
  int in_GS_OFFSET;
  longlong lVar19;
  int local_78;
  undefined1 local_70;
  undefined4 local_50;
  int local_4c [2];
  int local_44;
  int local_40;
  undefined4 local_3c;
  undefined4 local_38;
  uint local_34;
  uint local_30;
  uint local_2c;
  uint local_28;
  uint local_24;
  int local_20;
  
  lVar19 = FUN_0003a401();
  iVar18 = (int)((ulonglong)lVar19 >> 0x20);
  iVar9 = (int)lVar19;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  *(undefined1 *)(iVar9 + 0xa1) = 1;
  iVar12 = unaff_EDI + 0x70515;
  if (iVar18 == 1) {
    iVar12 = unaff_EDI + 0x7083b;
  }
  iVar17 = iVar18 * 0x10;
  local_40 = 0;
  local_3c = param_1;
  local_38 = 1;
  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);
  *puVar1 = *puVar1 & 0xfffb;
  lVar8 = lVar19;
  if (*(char *)(iVar9 + 0x4d) == '\0') {
    local_4c[0] = iVar9;
    local_44 = iVar18;
    iVar10 = FUN_00044730();
    lVar8 = CONCAT44(local_44,local_4c[0]);
    if (iVar10 != 0) goto LAB_000e9efd;
    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);
    uVar5 = *(undefined1 *)(iVar9 + 0xa0);
    local_50 = 0;
    *(undefined1 *)(iVar9 + 0xa0) = local_70;
    FUN_00041040();
    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;
    *(undefined4 *)(iVar9 + 0x9c) = local_50;
    FUN_00100700(0,0,&local_50,0);
    iVar10 = *(int *)(iVar9 + 0x3c);
    *(undefined1 *)(iVar9 + 0xa0) = uVar5;
    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {
      local_40 = iVar10;
      if (iVar10 == 7) {
        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {
          FUN_000446a0();
        }
      }
      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {
        FUN_00080a90(iVar9);
        FUN_000862d0();
      }
    }
    FUN_000c0450(local_50);
    iVar10 = local_40;
  }
  else {
LAB_000e9efd:
    local_44 = (int)((ulonglong)lVar8 >> 0x20);
    local_4c[0] = (int)lVar8;
    FUN_000862d0();
    iVar10 = local_40;
  }
  local_78 = iVar10;
  local_40 = iVar10;
  if (iVar10 != 0) goto LAB_000ea327;
  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;
  iVar11 = *(int *)(iVar3 + 4);
  if (iVar11 == 0) {
    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);
    *puVar1 = *puVar1 | 1;
    goto LAB_000ea236;
  }
  if (*(char *)(iVar11 + 9) != '\0') {
    FUN_00045510();
    iVar11 = *(int *)(iVar3 + 4);
  }
  bVar7 = false;
  if (*(char *)(iVar11 + 8) == '\0') {
    local_78 = FUN_000aeb90();
    if (local_78 == 0) {
      iVar11 = *(int *)(iVar3 + 4);
      bVar7 = true;
      cVar4 = *(char *)(iVar11 + 9);
      iVar15 = *(int *)(iVar11 + 4);
      goto joined_r0x000ea4e3;
    }
    FUN_000497b0();
    FUN_00057a50();
    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {
      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);
      *piVar2 = *piVar2 + -1;
      if (*piVar2 != 0) goto LAB_000ea327;
      goto LAB_000ea658;
    }
  }
  else {
    cVar4 = *(char *)(iVar11 + 9);
    iVar15 = *(int *)(iVar11 + 4);
joined_r0x000ea4e3:
    if (cVar4 == '\0') {
      iVar14 = *(int *)(iVar11 + 4);
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);
      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;
LAB_000e9f97:
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);
        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);
        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
LAB_000e9fc9:
        piVar2 = (int *)(iVar11 + 0xc);
        *piVar2 = *piVar2 + -1;
        if (*piVar2 == 0) {
          FUN_000453f0();
        }
      }
      iVar11 = *(int *)(iVar3 + 4);
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;
LAB_000ea521:
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);
      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;
LAB_000ea031:
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);
        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);
        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
LAB_000ea065:
        piVar2 = (int *)(iVar11 + 0xc);
        *piVar2 = *piVar2 + -1;
        if (*piVar2 == 0) {
          FUN_000453f0();
        }
      }
      iVar11 = *(int *)(iVar3 + 4);
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;
LAB_000ea559:
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);
      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
    }
    else {
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);
        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);
        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
LAB_000e9f7d:
        piVar2 = (int *)(iVar11 + 0xc);
        *piVar2 = *piVar2 + -1;
        if (*piVar2 == 0) {
          FUN_000453f0();
        }
      }
      iVar11 = *(int *)(iVar3 + 4);
      iVar14 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;
LAB_000ea505:
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);
      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;
LAB_000e9fe3:
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);
        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);
        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
LAB_000ea017:
        piVar2 = (int *)(iVar11 + 0xc);
        *piVar2 = *piVar2 + -1;
        if (*piVar2 == 0) {
          FUN_000453f0();
        }
      }
      iVar11 = *(int *)(iVar3 + 4);
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;
LAB_000ea53d:
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);
      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;
LAB_000ea07f:
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);
        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);
        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
      }
      piVar2 = (int *)(iVar11 + 0xc);
      *piVar2 = *piVar2 + -1;
      if (*piVar2 == 0) {
        FUN_000453f0();
      }
    }
LAB_000ea0bd:
    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {
      **(uint **)(iVar3 + 0xc) = local_34;
      if (local_24 == 0) goto LAB_000ea449;
      if (iVar18 == 0) {
        bVar13 = (byte)(local_24 & 3);
        if ((local_24 & 3) == 0) {
          bVar13 = 1;
        }
        *(byte *)(iVar9 + 0x4a) = bVar13;
        goto LAB_000ea0f8;
      }
      bVar13 = *(byte *)(iVar9 + 0x4a);
      if (bVar13 == local_24) goto LAB_000ea0f8;
      FUN_00057a50();
      local_78 = 1;
LAB_000ea20b:
      iVar12 = *(int *)(iVar3 + 4);
    }
    else {
      local_34 = 0;
      local_30 = 0;
      local_2c = 0;
      local_28 = 0;
      local_24 = 0;
      **(undefined4 **)(iVar3 + 0xc) = 0;
LAB_000ea449:
      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);
      *puVar1 = *puVar1 | 4;
      bVar13 = *(byte *)(iVar9 + 0x4a);
LAB_000ea0f8:
      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;
      iVar11 = *(int *)(iVar3 + 0xc);
      if (*(int *)(iVar11 + 0x50) == 0) {
        if ((int)local_2c < 0) {
          uVar16 = 0x7fffffff;
          if (local_2c != 0x80000000) {
            uVar16 = -local_2c;
          }
        }
        else {
          uVar16 = local_2c;
          if (local_2c == 0) {
            uVar16 = 0xfffff830;
          }
        }
        *(uint *)(iVar11 + 0x50) = uVar16;
        FUN_00054000();
        iVar11 = *(int *)(iVar3 + 0xc);
      }
      *(char *)(iVar11 + 0x4c) = (char)local_30;
      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);
      if (bVar13 == 0) {
        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;
        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);
      }
      if (4 < bVar13) {
        if (*extraout_ECX != 0) {
          FUN_00044090();
        }
        iVar12 = FUN_000579c0();
        local_78 = 1;
        *extraout_ECX = iVar12;
        goto LAB_000ea20b;
      }
      if ((iVar18 == 0) && (3 < (int)local_30)) {
        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;
      }
      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,
                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);
      uVar6 = *(undefined4 *)(iVar9 + 0x13c);
      *(undefined4 *)(iVar9 + 0x13c) = 0;
      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);
      *(undefined4 *)(iVar9 + 0x13c) = uVar6;
      if (local_78 == 0) {
        local_78 = local_40;
        if (iVar12 != 0) {
LAB_000ea1da:
          FUN_00044090();
        }
        if (local_78 != 0) goto LAB_000ea1eb;
        FUN_000e9ba0();
        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;
      }
      else {
        if (iVar12 != 0) goto LAB_000ea1da;
LAB_000ea1eb:
        if (*(char *)(iVar9 + 0x4d) != '\0') {
LAB_000ea1f1:
          local_78 = 7;
          FUN_00066830();
        }
        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;
      }
      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);
      *puVar1 = *puVar1 | 1;
      iVar12 = *(int *)(iVar3 + 4);
      local_78 = iVar10;
    }
    if (bVar7) {
      FUN_000b9030();
      iVar12 = *(int *)(iVar3 + 4);
    }
    if (*(char *)(iVar12 + 9) != '\0') {
      piVar2 = (int *)(iVar12 + 0xc);
      *piVar2 = *piVar2 + -1;
      if (*piVar2 == 0) {
LAB_000ea658:
        FUN_000453f0();
      }
    }
    if (local_78 == 0) goto LAB_000ea236;
  }
LAB_000ea327:
  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {
    FUN_000446a0();
  }
  if (-1 < lVar19) {
    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);
    *puVar1 = *puVar1 | 8;
    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);
    *puVar1 = *puVar1 | 8;
    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;
  }
  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {
    iVar18 = 0;
    do {
      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);
      bVar13 = *(byte *)(iVar17 + 0x4e);
      while ((bVar13 & 8) == 0) {
        iVar18 = iVar18 + 1;
        if (iVar12 <= iVar18) goto LAB_000ea236;
        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);
        bVar13 = *(byte *)(iVar17 + 0x4e);
      }
      iVar18 = iVar18 + 1;
      FUN_00066240(iVar17);
      iVar12 = *(int *)(iVar9 + 0x14);
    } while (iVar18 < iVar12);
  }
LAB_000ea236:
  *(undefined1 *)(iVar9 + 0xa1) = 0;
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_78;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00153870();
}


PUSH EBP
PUSH EDI
CALL 0x0003a401
ADD EDI,0xd0fd1
PUSH ESI
MOV ESI,EDX
PUSH EBX
MOV EBX,EAX
SUB ESP,0x6c
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ESP + 0x14],ECX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x5c],EAX
XOR EAX,EAX
CMP EDX,0x1
LEA EAX,[EDI + 0xfff9f544]
MOV dword ptr [ESP + 0x38],ESI
LEA EDX,[EDI + 0xfff9f86a]
MOV byte ptr [EBX + 0xa1],0x1
CMOVZ EAX,EDX
SHL ESI,0x4
MOV dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x30],EBX
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,dword ptr [EBX + 0x10]
MOV dword ptr [ESP + 0x34],ECX
MOV EAX,dword ptr [EAX + ESI*0x1 + 0xc]
MOV dword ptr [ESP + 0x8],ESI
MOV dword ptr [ESP + 0x44],0x1
AND word ptr [EAX + 0x4e],0xfffb
CMP byte ptr [EBX + 0x4d],0x0
JNZ 0x000e9efd
MOV ECX,0x7
LEA EDX,[EDI + 0xfffa2cd9]
LEA EAX,[EDI + 0xfffb0170]
CALL 0x00044730
TEST EAX,EAX
JZ 0x000ea260
MOV EDX,dword ptr [ESP + 0x10]
LEA EAX,[ESP + 0x30]
XOR ECX,ECX
CALL 0x000862d0
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x4],EAX
TEST EAX,EAX
JNZ 0x000ea327
MOV EAX,dword ptr [EBX + 0x10]
MOV ECX,dword ptr [ESP + 0x8]
LEA ESI,[EAX + ECX*0x1]
MOV EBP,dword ptr [ESI + 0x4]
TEST EBP,EBP
JZ 0x000ea600
CMP byte ptr [EBP + 0x9],0x0
JZ 0x000e9f41
MOV EAX,EBP
CALL 0x00045510
MOV EBP,dword ptr [ESI + 0x4]
CMP byte ptr [EBP + 0x8],0x0
MOV dword ptr [ESP + 0x18],0x0
JZ 0x000ea4c0
CMP byte ptr [EBP + 0x9],0x0
MOV EDX,dword ptr [EBP + 0x4]
JZ 0x000ea4e9
ADD dword ptr [EBP + 0xc],0x1
CMP byte ptr [EBP + 0xa],0x0
JZ 0x000ea3e8
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x28]
BSWAP EAX
MOV dword ptr [ESP + 0x48],EAX
SUB dword ptr [EBP + 0xc],0x1
JZ 0x000ea6a0
MOV EBP,dword ptr [ESI + 0x4]
CMP byte ptr [EBP + 0x9],0x0
MOV EDX,dword ptr [EBP + 0x4]
JZ 0x000ea505
ADD dword ptr [EBP + 0xc],0x1
CMP byte ptr [EBP + 0xa],0x0
JNZ 0x000ea570
MOV EAX,EBP
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00045420
MOV EDX,dword ptr [ESP + 0x1c]
CMP byte ptr [EBP + 0x9],0x0
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x2c]
BSWAP EAX
MOV dword ptr [ESP + 0x4c],EAX
JZ 0x000e9fd3
SUB dword ptr [EBP + 0xc],0x1
JZ 0x000ea6b0
MOV EBP,dword ptr [ESI + 0x4]
CMP byte ptr [EBP + 0x9],0x0
MOV EDX,dword ptr [EBP + 0x4]
JZ 0x000ea521
ADD dword ptr [EBP + 0xc],0x1
CMP byte ptr [EBP + 0xa],0x0
JNZ 0x000ea588
MOV EAX,EBP
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00045420
MOV EDX,dword ptr [ESP + 0x1c]
MOVZX EAX,byte ptr [EBP + 0x9]
MOV EDX,dword ptr [EDX + 0xc]
MOV EDX,dword ptr [EDX + 0x38]
MOV EDX,dword ptr [EDX + 0x30]
BSWAP EDX
MOV dword ptr [ESP + 0x50],EDX
TEST AL,AL
JZ 0x000ea021
SUB dword ptr [EBP + 0xc],0x1
JZ 0x000ea680
MOV EBP,dword ptr [ESI + 0x4]
CMP byte ptr [EBP + 0x9],0x0
MOV EDX,dword ptr [EBP + 0x4]
JZ 0x000ea53d
ADD dword ptr [EBP + 0xc],0x1
CMP byte ptr [EBP + 0xa],0x0
JNZ 0x000ea5a0
MOV EAX,EBP
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00045420
MOV EDX,dword ptr [ESP + 0x1c]
MOVZX EAX,byte ptr [EBP + 0x9]
MOV EDX,dword ptr [EDX + 0xc]
MOV EDX,dword ptr [EDX + 0x38]
MOV EDX,dword ptr [EDX + 0x34]
BSWAP EDX
MOV dword ptr [ESP + 0x54],EDX
TEST AL,AL
JZ 0x000ea06f
SUB dword ptr [EBP + 0xc],0x1
JZ 0x000ea690
MOV EBP,dword ptr [ESI + 0x4]
CMP byte ptr [EBP + 0x9],0x0
MOV EDX,dword ptr [EBP + 0x4]
JZ 0x000ea559
ADD dword ptr [EBP + 0xc],0x1
CMP byte ptr [EBP + 0xa],0x0
JNZ 0x000ea5b8
MOV EAX,EBP
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00045420
MOV EDX,dword ptr [ESP + 0x1c]
MOVZX EAX,byte ptr [EBP + 0x9]
MOV EDX,dword ptr [EDX + 0xc]
MOV EDX,dword ptr [EDX + 0x38]
MOV EDX,dword ptr [EDX + 0x38]
BSWAP EDX
MOV dword ptr [ESP + 0x58],EDX
TEST AL,AL
JZ 0x000ea0bd
SUB dword ptr [EBP + 0xc],0x1
JZ 0x000ea670
TEST byte ptr [EBX + 0x1f],0x2
JNZ 0x000ea418
MOV EAX,dword ptr [ESI + 0xc]
MOV EDX,dword ptr [ESP + 0x48]
MOV ECX,dword ptr [ESP + 0x58]
MOV dword ptr [EAX],EDX
TEST ECX,ECX
JZ 0x000ea449
MOV EBP,dword ptr [ESP + 0xc]
TEST EBP,EBP
JNZ 0x000ea5d0
MOV EDX,ECX
MOV EAX,0x1
AND EDX,0x3
CMOVZ EDX,EAX
MOV byte ptr [EBX + 0x4a],DL
MOV EAX,dword ptr [ESI + 0xc]
MOV byte ptr [EAX + 0x4d],DL
MOV EAX,dword ptr [ESI + 0xc]
MOV EDX,dword ptr [EAX + 0x50]
TEST EDX,EDX
JNZ 0x000ea13a
MOV EDX,dword ptr [ESP + 0x50]
TEST EDX,EDX
JNS 0x000ea610
MOV ECX,EDX
NEG ECX
CMP EDX,0x80000000
MOV EDX,0x7fffffff
CMOVNZ EDX,ECX
MOV dword ptr [EAX + 0x50],EDX
MOV EAX,dword ptr [ESI + 0xc]
MOV EDX,dword ptr [EAX + 0x50]
MOV EAX,dword ptr [ESI + 0x4]
CALL 0x00054000
MOV EAX,dword ptr [ESI + 0xc]
MOV EDX,dword ptr [ESP + 0x4c]
MOV byte ptr [EAX + 0x4c],DL
MOV ECX,dword ptr [ESI + 0xc]
MOVZX EAX,byte ptr [ECX + 0x4c]
TEST AL,AL
JNZ 0x000ea157
MOV byte ptr [ECX + 0x4c],0x1
MOV EAX,dword ptr [ESI + 0xc]
MOVZX EAX,byte ptr [EAX + 0x4c]
CMP AL,0x4
JA 0x000ea620
MOV EBP,dword ptr [ESP + 0xc]
TEST EBP,EBP
JNZ 0x000ea170
CMP EDX,0x3
JLE 0x000ea170
AND dword ptr [EBX + 0x1c],0xfffffffd
PUSH dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EBX + 0x10]
MOV ECX,dword ptr [ESP + 0xc]
PUSH dword ptr [EAX + ECX*0x1]
LEA EAX,[EDI + 0xfffb01fc]
PUSH EAX
PUSH EBX
CALL 0x000861f0
MOV EDX,dword ptr [EBX + 0x13c]
MOV dword ptr [ESP],0x0
MOV dword ptr [EBX + 0x13c],0x0
MOV EBP,EAX
LEA EAX,[ESP + 0x40]
MOV dword ptr [ESP + 0x20],EDX
PUSH EAX
LEA EAX,[EDI + 0xfff45b28]
PUSH EAX
PUSH EBP
PUSH EBX
CALL 0x000e9460
MOV EDX,dword ptr [ESP + 0x30]
ADD ESP,0x20
MOV EDI,EAX
MOV dword ptr [EBX + 0x13c],EDX
TEST EAX,EAX
JNZ 0x000ea4b0
MOV EDI,dword ptr [ESP + 0x3c]
TEST EBP,EBP
JZ 0x000ea1e3
MOV EDX,EBP
MOV EAX,EBX
CALL 0x00044090
TEST EDI,EDI
JZ 0x000ea468
CMP byte ptr [EBX + 0x4d],0x0
JZ 0x000ea1fd
MOV EAX,EBX
MOV EDI,0x7
CALL 0x00066830
TEST byte ptr [EBX + 0x1f],0x8
JNZ 0x000ea47d
MOV dword ptr [ESP + 0x4],EDI
MOV EDI,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESI + 0x4]
TEST EDI,EDI
JNZ 0x000ea49c
CMP byte ptr [EAX + 0x9],0x0
JZ 0x000ea22a
SUB dword ptr [EAX + 0xc],0x1
JZ 0x000ea658
MOV ECX,dword ptr [ESP + 0x4]
TEST ECX,ECX
JNZ 0x000ea327
MOV byte ptr [EBX + 0xa1],0x0
MOV EAX,dword ptr [ESP + 0x4]
MOV EDI,dword ptr [ESP + 0x5c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x000ea70e
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOVZX EAX,byte ptr [ESP + 0xc]
MOVZX ESI,byte ptr [EBX + 0xa0]
LEA EBP,[ESP + 0x2c]
MOV dword ptr [ESP + 0x2c],0x0
MOV EDX,EBP
MOV byte ptr [EBX + 0xa0],AL
LEA EAX,[EDI + 0xfffa3f43]
CALL 0x00041040
MOV EAX,dword ptr [ESP + 0x2c]
PUSH 0x0
MOV ECX,0xffffffff
AND byte ptr [EBX + 0xa2],0xfe
LEA EDX,[EDI + 0xfffb0170]
PUSH EBP
MOV dword ptr [EBX + 0x9c],EAX
MOV EAX,EBX
PUSH 0x0
PUSH 0x0
CALL 0x00100700
MOV EAX,dword ptr [EBX + 0x3c]
MOV ECX,ESI
ADD ESP,0x10
MOV byte ptr [EBX + 0xa0],CL
TEST EAX,EAX
JZ 0x000ea308
TEST byte ptr [EBX + 0xa2],0x1
JNZ 0x000ea308
MOV dword ptr [ESP + 0x3c],EAX
CMP EAX,0x7
JZ 0x000ea6c0
CMP EAX,0x9
JZ 0x000ea308
CMP AL,0x6
JZ 0x000ea308
SUB ESP,0xc
PUSH EBX
CALL 0x00080a90
LEA ESI,[ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x20]
MOV ECX,EAX
MOV EAX,ESI
CALL 0x000862d0
ADD ESP,0x10
LEA ESI,[ESI]
NOP
SUB ESP,0xc
PUSH dword ptr [ESP + 0x38]
CALL 0x000c0450
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x4],EAX
TEST EAX,EAX
JZ 0x000e9f1c
MOV EAX,dword ptr [ESP + 0x4]
CMP EAX,0x7
JZ 0x000ea3c8
CMP EAX,0xc0a
JZ 0x000ea3c8
MOV EDX,dword ptr [ESP + 0xc]
TEST EDX,EDX
JS 0x000ea366
MOV EAX,dword ptr [EBX + 0x10]
MOV EDI,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + EDI*0x1 + 0xc]
OR word ptr [EAX + 0x4e],0x8
MOV EAX,dword ptr [EBX + 0x10]
MOV EAX,dword ptr [EAX + 0x1c]
OR word ptr [EAX + 0x4e],0x8
AND dword ptr [EBX + 0x18],0xfffffff7
MOV EAX,dword ptr [EBX + 0x34]
TEST EAX,EAX
JNZ 0x000ea236
MOV EDX,dword ptr [EBX + 0x14]
TEST EDX,EDX
JLE 0x000ea236
XOR ESI,ESI
MOV ECX,dword ptr [EBX + 0x10]
MOV EAX,ESI
SHL EAX,0x4
MOV EAX,dword ptr [ECX + EAX*0x1 + 0xc]
TEST byte ptr [EAX + 0x4e],0x8
JNZ 0x000ea3aa
ADD ESI,0x1
CMP ESI,EDX
JGE 0x000ea236
MOV EAX,ESI
SHL EAX,0x4
MOV EAX,dword ptr [ECX + EAX*0x1 + 0xc]
TEST byte ptr [EAX + 0x4e],0x8
JZ 0x000ea390
SUB ESP,0xc
ADD ESI,0x1
PUSH EAX
CALL 0x00066240
MOV EDX,dword ptr [EBX + 0x14]
ADD ESP,0x10
CMP ESI,EDX
JL 0x000ea37e
JMP 0x000ea236
TEST dword ptr [EBX + 0x4c],0xffff00
JNZ 0x000ea33f
MOV EAX,EBX
CALL 0x000446a0
JMP 0x000ea33f
MOV EAX,EBP
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00045420
MOV EDX,dword ptr [ESP + 0x1c]
CMP byte ptr [EBP + 0x9],0x0
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x28]
BSWAP EAX
MOV dword ptr [ESP + 0x48],EAX
JNZ 0x000e9f7d
JMP 0x000e9f87
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [ESP + 0x48],0x0
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x50],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x58],0x0
MOV dword ptr [EAX],0x0
MOV EAX,dword ptr [EBX + 0x10]
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + ECX*0x1 + 0xc]
OR word ptr [EAX + 0x4e],0x4
MOVZX EDX,byte ptr [EBX + 0x4a]
JMP 0x000ea0f8
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,EBX
CALL 0x000e9ba0
CMP byte ptr [EBX + 0x4d],0x0
JNZ 0x000ea1f1
MOV EAX,dword ptr [EBX + 0x10]
MOV EDI,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + EDI*0x1 + 0xc]
MOV EDI,dword ptr [ESP + 0x18]
OR word ptr [EAX + 0x4e],0x1
MOV EAX,dword ptr [ESI + 0x4]
TEST EDI,EDI
JZ 0x000ea21a
CALL 0x000b9030
MOV EAX,dword ptr [ESI + 0x4]
JMP 0x000ea21a
TEST EBP,EBP
JNZ 0x000ea1da
JMP 0x000ea1eb
MOV EAX,EBP
CALL 0x000aeb90
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x000ea6e0
MOV EBP,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x18],0x1
CMP byte ptr [EBP + 0x9],0x0
MOV EDX,dword ptr [EBP + 0x4]
JNZ 0x000e9f60
MOV EAX,dword ptr [EDX + 0xc]
CMP byte ptr [EBP + 0x9],0x0
MOV EDX,dword ptr [EBP + 0x4]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x28]
BSWAP EAX
MOV dword ptr [ESP + 0x48],EAX
JNZ 0x000e9f97
MOV EAX,dword ptr [EDX + 0xc]
CMP byte ptr [EBP + 0x9],0x0
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x2c]
BSWAP EAX
MOV dword ptr [ESP + 0x4c],EAX
MOV EDX,dword ptr [EBP + 0x4]
JNZ 0x000e9fe3
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x30]
BSWAP EAX
MOV dword ptr [ESP + 0x50],EAX
CMP byte ptr [EBP + 0x9],0x0
MOV EDX,dword ptr [EBP + 0x4]
JNZ 0x000ea031
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x34]
BSWAP EAX
MOV dword ptr [ESP + 0x54],EAX
CMP byte ptr [EBP + 0x9],0x0
MOV EDX,dword ptr [EBP + 0x4]
JNZ 0x000ea07f
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x38]
BSWAP EAX
MOV dword ptr [ESP + 0x58],EAX
JMP 0x000ea0bd
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x2c]
BSWAP EAX
MOV dword ptr [ESP + 0x4c],EAX
JMP 0x000e9fc9
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x30]
BSWAP EAX
MOV dword ptr [ESP + 0x50],EAX
JMP 0x000ea017
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x34]
BSWAP EAX
MOV dword ptr [ESP + 0x54],EAX
JMP 0x000ea065
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x38]
BSWAP EAX
MOV dword ptr [ESP + 0x58],EAX
JMP 0x000ea0b3
MOVZX EAX,byte ptr [EBX + 0x4a]
MOV EDX,EAX
CMP EAX,ECX
JZ 0x000ea0f8
MOV EAX,dword ptr [ESP + 0x14]
LEA ECX,[EDI + 0xfffb01b8]
MOV EDX,EBX
CALL 0x00057a50
MOV dword ptr [ESP + 0x4],0x1
JMP 0x000ea20b
MOV EAX,dword ptr [EAX + 0x1c]
OR word ptr [EAX + 0x4e],0x1
JMP 0x000ea236
MOV ECX,0xfffff830
CMOVZ EDX,ECX
JMP 0x000ea126
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x000ea631
MOV EAX,EBX
CALL 0x00044090
LEA EDX,[EDI + 0xfffa2ce1]
MOV EAX,EBX
CALL 0x000579c0
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x4],0x1
MOV dword ptr [EDI],EAX
JMP 0x000ea20b
MOV dword ptr [ESP + 0x4],EBP
LEA ESI,[ESI]
LEA EDX,[EAX + 0xa]
MOV EAX,dword ptr [EAX + 0x4]
CALL 0x000453f0
JMP 0x000ea22a
MOV EAX,dword ptr [EBP + 0x4]
LEA EDX,[EBP + 0xa]
CALL 0x000453f0
JMP 0x000ea0bd
MOV EAX,dword ptr [EBP + 0x4]
LEA EDX,[EBP + 0xa]
CALL 0x000453f0
JMP 0x000ea021
MOV EAX,dword ptr [EBP + 0x4]
LEA EDX,[EBP + 0xa]
CALL 0x000453f0
JMP 0x000ea06f
MOV EAX,dword ptr [EBP + 0x4]
LEA EDX,[EBP + 0xa]
CALL 0x000453f0
JMP 0x000e9f87
MOV EAX,dword ptr [EBP + 0x4]
LEA EDX,[EBP + 0xa]
CALL 0x000453f0
JMP 0x000e9fd3
TEST dword ptr [EBX + 0x4c],0xffff00
JNZ 0x000ea308
MOV EAX,EBX
CALL 0x000446a0
JMP 0x000ea308
CALL 0x000497b0
MOV EDX,EBX
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x14]
CALL 0x00057a50
MOV EAX,dword ptr [ESI + 0x4]
CMP byte ptr [EAX + 0x9],0x0
JZ 0x000ea705
SUB dword ptr [EAX + 0xc],0x1
JZ 0x000ea651
MOV dword ptr [ESP + 0x4],EBP
JMP 0x000ea327
CALL 0x00153870
(translation_unit "int FUN_000e9e50(undefined4 param_1)\n\n{\n  ushort *puVar1;\n  int *piVar2;\n  int iVar3;\n  char cVar4;\n  undefined1 uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  longlong lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *extraout_ECX;\n  byte bVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  longlong lVar19;\n  int local_78;\n  undefined1 local_70;\n  undefined4 local_50;\n  int local_4c [2];\n  int local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  \n  lVar19 = FUN_0003a401();\n  iVar18 = (int)((ulonglong)lVar19 >> 0x20);\n  iVar9 = (int)lVar19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(iVar9 + 0xa1) = 1;\n  iVar12 = unaff_EDI + 0x70515;\n  if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }\n  iVar17 = iVar18 * 0x10;\n  local_40 = 0;\n  local_3c = param_1;\n  local_38 = 1;\n  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar8 = lVar19;\n  if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }\n  local_78 = iVar10;\n  local_40 = iVar10;\n  if (iVar10 != 0) goto LAB_000ea327;\n  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;\n  iVar11 = *(int *)(iVar3 + 4);\n  if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }\n  bVar7 = false;\n  if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }\n  if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }\n  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }\nLAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00153870();\n}\n\n" (function_definition "int FUN_000e9e50(undefined4 param_1)\n\n{\n  ushort *puVar1;\n  int *piVar2;\n  int iVar3;\n  char cVar4;\n  undefined1 uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  longlong lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *extraout_ECX;\n  byte bVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  longlong lVar19;\n  int local_78;\n  undefined1 local_70;\n  undefined4 local_50;\n  int local_4c [2];\n  int local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  \n  lVar19 = FUN_0003a401();\n  iVar18 = (int)((ulonglong)lVar19 >> 0x20);\n  iVar9 = (int)lVar19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(iVar9 + 0xa1) = 1;\n  iVar12 = unaff_EDI + 0x70515;\n  if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }\n  iVar17 = iVar18 * 0x10;\n  local_40 = 0;\n  local_3c = param_1;\n  local_38 = 1;\n  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar8 = lVar19;\n  if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }\n  local_78 = iVar10;\n  local_40 = iVar10;\n  if (iVar10 != 0) goto LAB_000ea327;\n  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;\n  iVar11 = *(int *)(iVar3 + 4);\n  if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }\n  bVar7 = false;\n  if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }\n  if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }\n  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }\nLAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00153870();\n}" primitive_type (function_declarator "FUN_000e9e50(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  ushort *puVar1;\n  int *piVar2;\n  int iVar3;\n  char cVar4;\n  undefined1 uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  longlong lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *extraout_ECX;\n  byte bVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  longlong lVar19;\n  int local_78;\n  undefined1 local_70;\n  undefined4 local_50;\n  int local_4c [2];\n  int local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  \n  lVar19 = FUN_0003a401();\n  iVar18 = (int)((ulonglong)lVar19 >> 0x20);\n  iVar9 = (int)lVar19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(iVar9 + 0xa1) = 1;\n  iVar12 = unaff_EDI + 0x70515;\n  if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }\n  iVar17 = iVar18 * 0x10;\n  local_40 = 0;\n  local_3c = param_1;\n  local_38 = 1;\n  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar8 = lVar19;\n  if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }\n  local_78 = iVar10;\n  local_40 = iVar10;\n  if (iVar10 != 0) goto LAB_000ea327;\n  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;\n  iVar11 = *(int *)(iVar3 + 4);\n  if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }\n  bVar7 = false;\n  if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }\n  if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }\n  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }\nLAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00153870();\n}" { (declaration "ushort *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longlong lVar19;" type_identifier identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "undefined1 local_70;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "int local_4c [2];" primitive_type (array_declarator "local_4c [2]" identifier [ number_literal ]) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "lVar19 = FUN_0003a401();" (assignment_expression "lVar19 = FUN_0003a401()" identifier = (call_expression "FUN_0003a401()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar18 = (int)((ulonglong)lVar19 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)lVar19 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar19 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar19 >> 0x20)" ( (binary_expression "(ulonglong)lVar19 >> 0x20" (cast_expression "(ulonglong)lVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar9 = (int)lVar19;" (assignment_expression "iVar9 = (int)lVar19" identifier = (cast_expression "(int)lVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar9 + 0xa1) = 1;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa1) = 1" (pointer_expression "*(undefined1 *)(iVar9 + 0xa1)" * (cast_expression "(undefined1 *)(iVar9 + 0xa1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa1)" ( (binary_expression "iVar9 + 0xa1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar12 = unaff_EDI + 0x70515;" (assignment_expression "iVar12 = unaff_EDI + 0x70515" identifier = (binary_expression "unaff_EDI + 0x70515" identifier + number_literal)) ;) (if_statement "if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }" if (parenthesized_expression "(iVar18 == 1)" ( (binary_expression "iVar18 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar12 = unaff_EDI + 0x7083b;\n  }" { (expression_statement "iVar12 = unaff_EDI + 0x7083b;" (assignment_expression "iVar12 = unaff_EDI + 0x7083b" identifier = (binary_expression "unaff_EDI + 0x7083b" identifier + number_literal)) ;) })) (expression_statement "iVar17 = iVar18 * 0x10;" (assignment_expression "iVar17 = iVar18 * 0x10" identifier = (binary_expression "iVar18 * 0x10" identifier * number_literal)) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_3c = param_1;" (assignment_expression "local_3c = param_1" identifier = identifier) ;) (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" identifier = number_literal) ;) (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + identifier) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 & 0xfffb;" (assignment_expression "*puVar1 = *puVar1 & 0xfffb" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xfffb" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "lVar8 = lVar19;" (assignment_expression "lVar8 = lVar19" identifier = identifier) ;) (if_statement "if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }" if (parenthesized_expression "(*(char *)(iVar9 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar9 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar9 + 0x4d)" * (cast_expression "(char *)(iVar9 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4d)" ( (binary_expression "iVar9 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }" { (expression_statement "local_4c[0] = iVar9;" (assignment_expression "local_4c[0] = iVar9" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = iVar18;" (assignment_expression "local_44 = iVar18" identifier = identifier) ;) (expression_statement "iVar10 = FUN_00044730();" (assignment_expression "iVar10 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar8 = CONCAT44(local_44,local_4c[0]);" (assignment_expression "lVar8 = CONCAT44(local_44,local_4c[0])" identifier = (call_expression "CONCAT44(local_44,local_4c[0])" identifier (argument_list "(local_44,local_4c[0])" ( identifier , (subscript_expression "local_4c[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar10 != 0) goto LAB_000e9efd;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000e9efd;" goto statement_identifier ;)) (expression_statement "local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);" (assignment_expression "local_70 = (undefined1)((ulonglong)lVar19 >> 0x20)" identifier = (call_expression "(undefined1)((ulonglong)lVar19 >> 0x20)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)lVar19 >> 0x20)" ( (binary_expression "(ulonglong)lVar19 >> 0x20" (cast_expression "(ulonglong)lVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = *(undefined1 *)(iVar9 + 0xa0);" (assignment_expression "uVar5 = *(undefined1 *)(iVar9 + 0xa0)" identifier = (pointer_expression "*(undefined1 *)(iVar9 + 0xa0)" * (cast_expression "(undefined1 *)(iVar9 + 0xa0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar9 + 0xa0) = local_70;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa0) = local_70" (pointer_expression "*(undefined1 *)(iVar9 + 0xa0)" * (cast_expression "(undefined1 *)(iVar9 + 0xa0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041040();" (call_expression "FUN_00041040()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;" (assignment_expression "*(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe" (pointer_expression "*(byte *)(iVar9 + 0xa2)" * (cast_expression "(byte *)(iVar9 + 0xa2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa2)" ( (binary_expression "iVar9 + 0xa2" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar9 + 0xa2) & 0xfe" (pointer_expression "*(byte *)(iVar9 + 0xa2)" * (cast_expression "(byte *)(iVar9 + 0xa2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa2)" ( (binary_expression "iVar9 + 0xa2" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x9c) = local_50;" (assignment_expression "*(undefined4 *)(iVar9 + 0x9c) = local_50" (pointer_expression "*(undefined4 *)(iVar9 + 0x9c)" * (cast_expression "(undefined4 *)(iVar9 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x9c)" ( (binary_expression "iVar9 + 0x9c" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00100700(0,0,&local_50,0);" (call_expression "FUN_00100700(0,0,&local_50,0)" identifier (argument_list "(0,0,&local_50,0)" ( number_literal , number_literal , (pointer_expression "&local_50" & identifier) , number_literal ))) ;) (expression_statement "iVar10 = *(int *)(iVar9 + 0x3c);" (assignment_expression "iVar10 = *(int *)(iVar9 + 0x3c)" identifier = (pointer_expression "*(int *)(iVar9 + 0x3c)" * (cast_expression "(int *)(iVar9 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x3c)" ( (binary_expression "iVar9 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar9 + 0xa0) = uVar5;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa0) = uVar5" (pointer_expression "*(undefined1 *)(iVar9 + 0xa0)" * (cast_expression "(undefined1 *)(iVar9 + 0xa0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }" if (parenthesized_expression "((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0))" ( (binary_expression "(iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(byte *)(iVar9 + 0xa2) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0xa2) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0xa2) & 1)" ( (binary_expression "*(byte *)(iVar9 + 0xa2) & 1" (pointer_expression "*(byte *)(iVar9 + 0xa2)" * (cast_expression "(byte *)(iVar9 + 0xa2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa2)" ( (binary_expression "iVar9 + 0xa2" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }" { (expression_statement "local_40 = iVar10;" (assignment_expression "local_40 = iVar10" identifier = identifier) ;) (if_statement "if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" if (parenthesized_expression "(iVar10 == 7)" ( (binary_expression "iVar10 == 7" identifier == number_literal) )) (compound_statement "{\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }" { (if_statement "if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }" if (parenthesized_expression "((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar9 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar9 + 0x4c)" * (cast_expression "(uint *)(iVar9 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4c)" ( (binary_expression "iVar9 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          FUN_000446a0();\n        }" { (expression_statement "FUN_000446a0();" (call_expression "FUN_000446a0()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" else (if_statement "if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" if (parenthesized_expression "((iVar10 != 9) && ((char)iVar10 != '\x06'))" ( (binary_expression "(iVar10 != 9) && ((char)iVar10 != '\x06')" (parenthesized_expression "(iVar10 != 9)" ( (binary_expression "iVar10 != 9" identifier != number_literal) )) && (parenthesized_expression "((char)iVar10 != '\x06')" ( (binary_expression "(char)iVar10 != '\x06'" (cast_expression "(char)iVar10" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x06'" ' escape_sequence ')) ))) )) (compound_statement "{\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" { (expression_statement "FUN_00080a90(iVar9);" (call_expression "FUN_00080a90(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "FUN_000862d0();" (call_expression "FUN_000862d0()" identifier (argument_list "()" ( ))) ;) })))) })) (expression_statement "FUN_000c0450(local_50);" (call_expression "FUN_000c0450(local_50)" identifier (argument_list "(local_50)" ( identifier ))) ;) (expression_statement "iVar10 = local_40;" (assignment_expression "iVar10 = local_40" identifier = identifier) ;) }) (else_clause "else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }" else (compound_statement "{\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }" { (labeled_statement "LAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);" statement_identifier : (expression_statement "local_44 = (int)((ulonglong)lVar8 >> 0x20);" (assignment_expression "local_44 = (int)((ulonglong)lVar8 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_4c[0] = (int)lVar8;" (assignment_expression "local_4c[0] = (int)lVar8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_000862d0();" (call_expression "FUN_000862d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_40;" (assignment_expression "iVar10 = local_40" identifier = identifier) ;) }))) (expression_statement "local_78 = iVar10;" (assignment_expression "local_78 = iVar10" identifier = identifier) ;) (expression_statement "local_40 = iVar10;" (assignment_expression "local_40 = iVar10" identifier = identifier) ;) (if_statement "if (iVar10 != 0) goto LAB_000ea327;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ea327;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(iVar9 + 0x10) + iVar17;" (assignment_expression "iVar3 = *(int *)(iVar9 + 0x10) + iVar17" identifier = (binary_expression "*(int *)(iVar9 + 0x10) + iVar17" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }" { (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (goto_statement "goto LAB_000ea236;" goto statement_identifier ;) })) (if_statement "if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }" { (expression_statement "FUN_00045510();" (call_expression "FUN_00045510()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (if_statement "if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }" if (parenthesized_expression "(*(char *)(iVar11 + 8) == '\0')" ( (binary_expression "*(char *)(iVar11 + 8) == '\0'" (pointer_expression "*(char *)(iVar11 + 8)" * (cast_expression "(char *)(iVar11 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }" { (expression_statement "local_78 = FUN_000aeb90();" (assignment_expression "local_78 = FUN_000aeb90()" identifier = (call_expression "FUN_000aeb90()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }" if (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }" { (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (expression_statement "cVar4 = *(char *)(iVar11 + 9);" (assignment_expression "cVar4 = *(char *)(iVar11 + 9)" identifier = (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000ea4e3;" goto statement_identifier ;) })) (expression_statement "FUN_000497b0();" (call_expression "FUN_000497b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00057a50();" (call_expression "FUN_00057a50()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(iVar3 + 4) + 9) != '\0')" ( (binary_expression "*(char *)(*(int *)(iVar3 + 4) + 9) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar3 + 4) + 9)" * (cast_expression "(char *)(*(int *)(iVar3 + 4) + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 4) + 9)" ( (binary_expression "*(int *)(iVar3 + 4) + 9" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }" { (expression_statement "piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);" (assignment_expression "piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc)" identifier = (cast_expression "(int *)(*(int *)(iVar3 + 4) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 4) + 0xc)" ( (binary_expression "*(int *)(iVar3 + 4) + 0xc" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 != 0) goto LAB_000ea327;" if (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) (goto_statement "goto LAB_000ea327;" goto statement_identifier ;)) (goto_statement "goto LAB_000ea658;" goto statement_identifier ;) })) }) (else_clause "else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }" else (compound_statement "{\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }" { (expression_statement "cVar4 = *(char *)(iVar11 + 9);" (assignment_expression "cVar4 = *(char *)(iVar11 + 9)" identifier = (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" statement_identifier : (if_statement "if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }" { (expression_statement "iVar14 = *(int *)(iVar11 + 4);" (assignment_expression "iVar14 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea505;" goto statement_identifier ;)) (labeled_statement "LAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" statement_identifier : (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;)) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (binary_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c" (pointer_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar14 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar14 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9fc9;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (binary_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c" (pointer_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar14 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar14 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);" statement_identifier : (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;)) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n          FUN_000453f0();\n        }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9fe3;" goto statement_identifier ;)) (labeled_statement "LAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" statement_identifier : (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea53d;" goto statement_identifier ;)) (labeled_statement "LAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" statement_identifier : (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;)) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea065;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);" statement_identifier : (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;)) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n          FUN_000453f0();\n        }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea07f;" goto statement_identifier ;)) (labeled_statement "LAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" statement_identifier : (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) }) (else_clause "else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" else (compound_statement "{\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" { (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9f7d;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);" statement_identifier : (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;)) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n          FUN_000453f0();\n        }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(iVar11 + 4);" (assignment_expression "iVar14 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9f97;" goto statement_identifier ;)) (labeled_statement "LAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" statement_identifier : (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (binary_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c" (pointer_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar14 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar14 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea521;" goto statement_identifier ;)) (labeled_statement "LAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" statement_identifier : (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;)) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea017;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);" statement_identifier : (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;)) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n          FUN_000453f0();\n        }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea031;" goto statement_identifier ;)) (labeled_statement "LAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" statement_identifier : (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea559;" goto statement_identifier ;)) (labeled_statement "LAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" statement_identifier : (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;)) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea0bd;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) }))) (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n        FUN_000453f0();\n      }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n        FUN_000453f0();\n      }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) })))) (labeled_statement "LAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" statement_identifier : (if_statement "if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1f) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1f) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1f) & 2)" ( (binary_expression "*(byte *)(iVar9 + 0x1f) & 2" (pointer_expression "*(byte *)(iVar9 + 0x1f)" * (cast_expression "(byte *)(iVar9 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1f)" ( (binary_expression "iVar9 + 0x1f" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }" { (expression_statement "**(uint **)(iVar3 + 0xc) = local_34;" (assignment_expression "**(uint **)(iVar3 + 0xc) = local_34" (pointer_expression "**(uint **)(iVar3 + 0xc)" * (pointer_expression "*(uint **)(iVar3 + 0xc)" * (cast_expression "(uint **)(iVar3 + 0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) = identifier) ;) (if_statement "if (local_24 == 0) goto LAB_000ea449;" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ea449;" goto statement_identifier ;)) (if_statement "if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }" { (expression_statement "bVar13 = (byte)(local_24 & 3);" (assignment_expression "bVar13 = (byte)(local_24 & 3)" identifier = (call_expression "(byte)(local_24 & 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_24 & 3)" ( (binary_expression "local_24 & 3" identifier & number_literal) )))) ;) (if_statement "if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }" if (parenthesized_expression "((local_24 & 3) == 0)" ( (binary_expression "(local_24 & 3) == 0" (parenthesized_expression "(local_24 & 3)" ( (binary_expression "local_24 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar13 = 1;\n        }" { (expression_statement "bVar13 = 1;" (assignment_expression "bVar13 = 1" identifier = number_literal) ;) })) (expression_statement "*(byte *)(iVar9 + 0x4a) = bVar13;" (assignment_expression "*(byte *)(iVar9 + 0x4a) = bVar13" (pointer_expression "*(byte *)(iVar9 + 0x4a)" * (cast_expression "(byte *)(iVar9 + 0x4a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4a)" ( (binary_expression "iVar9 + 0x4a" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000ea0f8;" goto statement_identifier ;) })) (expression_statement "bVar13 = *(byte *)(iVar9 + 0x4a);" (assignment_expression "bVar13 = *(byte *)(iVar9 + 0x4a)" identifier = (pointer_expression "*(byte *)(iVar9 + 0x4a)" * (cast_expression "(byte *)(iVar9 + 0x4a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4a)" ( (binary_expression "iVar9 + 0x4a" identifier + number_literal) ))))) ;) (if_statement "if (bVar13 == local_24) goto LAB_000ea0f8;" if (parenthesized_expression "(bVar13 == local_24)" ( (binary_expression "bVar13 == local_24" identifier == identifier) )) (goto_statement "goto LAB_000ea0f8;" goto statement_identifier ;)) (expression_statement "FUN_00057a50();" (call_expression "FUN_00057a50()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);" statement_identifier : (expression_statement "iVar12 = *(int *)(iVar3 + 4);" (assignment_expression "iVar12 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" else (compound_statement "{\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "**(undefined4 **)(iVar3 + 0xc) = 0;" (assignment_expression "**(undefined4 **)(iVar3 + 0xc) = 0" (pointer_expression "**(undefined4 **)(iVar3 + 0xc)" * (pointer_expression "*(undefined4 **)(iVar3 + 0xc)" * (cast_expression "(undefined4 **)(iVar3 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) = number_literal) ;) (labeled_statement "LAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" statement_identifier : (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + identifier) )))) + number_literal) )))) ;)) (expression_statement "*puVar1 = *puVar1 | 4;" (assignment_expression "*puVar1 = *puVar1 | 4" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 4" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "bVar13 = *(byte *)(iVar9 + 0x4a);" (assignment_expression "bVar13 = *(byte *)(iVar9 + 0x4a)" identifier = (pointer_expression "*(byte *)(iVar9 + 0x4a)" * (cast_expression "(byte *)(iVar9 + 0x4a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4a)" ( (binary_expression "iVar9 + 0x4a" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;" statement_identifier : (expression_statement "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;" (assignment_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13" (pointer_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4d)" * (cast_expression "(byte *)(*(int *)(iVar3 + 0xc) + 0x4d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4d)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0x4d" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) = identifier) ;)) (expression_statement "iVar11 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }" if (parenthesized_expression "(*(int *)(iVar11 + 0x50) == 0)" ( (binary_expression "*(int *)(iVar11 + 0x50) == 0" (pointer_expression "*(int *)(iVar11 + 0x50)" * (cast_expression "(int *)(iVar11 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x50)" ( (binary_expression "iVar11 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }" { (if_statement "if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }" if (parenthesized_expression "((int)local_2c < 0)" ( (binary_expression "(int)local_2c < 0" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }" { (expression_statement "uVar16 = 0x7fffffff;" (assignment_expression "uVar16 = 0x7fffffff" identifier = number_literal) ;) (if_statement "if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }" if (parenthesized_expression "(local_2c != 0x80000000)" ( (binary_expression "local_2c != 0x80000000" identifier != number_literal) )) (compound_statement "{\n            uVar16 = -local_2c;\n          }" { (expression_statement "uVar16 = -local_2c;" (assignment_expression "uVar16 = -local_2c" identifier = (unary_expression "-local_2c" - identifier)) ;) })) }) (else_clause "else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }" else (compound_statement "{\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }" { (expression_statement "uVar16 = local_2c;" (assignment_expression "uVar16 = local_2c" identifier = identifier) ;) (if_statement "if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }" if (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) )) (compound_statement "{\n            uVar16 = 0xfffff830;\n          }" { (expression_statement "uVar16 = 0xfffff830;" (assignment_expression "uVar16 = 0xfffff830" identifier = number_literal) ;) })) }))) (expression_statement "*(uint *)(iVar11 + 0x50) = uVar16;" (assignment_expression "*(uint *)(iVar11 + 0x50) = uVar16" (pointer_expression "*(uint *)(iVar11 + 0x50)" * (cast_expression "(uint *)(iVar11 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x50)" ( (binary_expression "iVar11 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00054000();" (call_expression "FUN_00054000()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "*(char *)(iVar11 + 0x4c) = (char)local_30;" (assignment_expression "*(char *)(iVar11 + 0x4c) = (char)local_30" (pointer_expression "*(char *)(iVar11 + 0x4c)" * (cast_expression "(char *)(iVar11 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x4c)" ( (binary_expression "iVar11 + 0x4c" identifier + number_literal) )))) = (cast_expression "(char)local_30" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);" (assignment_expression "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" * (cast_expression "(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }" { (expression_statement "*(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c)" * (cast_expression "(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);" (assignment_expression "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" * (cast_expression "(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) })) (if_statement "if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }" if (parenthesized_expression "(4 < bVar13)" ( (binary_expression "4 < bVar13" number_literal < identifier) )) (compound_statement "{\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }" { (if_statement "if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }" if (parenthesized_expression "(*extraout_ECX != 0)" ( (binary_expression "*extraout_ECX != 0" (pointer_expression "*extraout_ECX" * identifier) != number_literal) )) (compound_statement "{\n          FUN_00044090();\n        }" { (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar12 = FUN_000579c0();" (assignment_expression "iVar12 = FUN_000579c0()" identifier = (call_expression "FUN_000579c0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) (expression_statement "*extraout_ECX = iVar12;" (assignment_expression "*extraout_ECX = iVar12" (pointer_expression "*extraout_ECX" * identifier) = identifier) ;) (goto_statement "goto LAB_000ea20b;" goto statement_identifier ;) })) (if_statement "if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }" if (parenthesized_expression "((iVar18 == 0) && (3 < (int)local_30))" ( (binary_expression "(iVar18 == 0) && (3 < (int)local_30)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) && (parenthesized_expression "(3 < (int)local_30)" ( (binary_expression "3 < (int)local_30" number_literal < (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }" { (expression_statement "*(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd" (pointer_expression "*(uint *)(iVar9 + 0x1c)" * (cast_expression "(uint *)(iVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar9 + 0x1c) & 0xfffffffd" (pointer_expression "*(uint *)(iVar9 + 0x1c)" * (cast_expression "(uint *)(iVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);" (assignment_expression "iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12)" identifier = (call_expression "FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12)" identifier (argument_list "(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12)" ( identifier , (binary_expression "unaff_EDI + 0x811cd" identifier + number_literal) , (pointer_expression "*(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17)" * (cast_expression "(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + iVar17" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + identifier) )))) , identifier )))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 0x13c);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 0x13c)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x13c)" * (cast_expression "(undefined4 *)(iVar9 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x13c)" ( (binary_expression "iVar9 + 0x13c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x13c) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0x13c) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0x13c)" * (cast_expression "(undefined4 *)(iVar9 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x13c)" ( (binary_expression "iVar9 + 0x13c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);" (assignment_expression "local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0)" identifier = (call_expression "FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0)" identifier (argument_list "(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0)" ( identifier , identifier , (binary_expression "unaff_EDI + 0x16af9" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x13c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar9 + 0x13c) = uVar6" (pointer_expression "*(undefined4 *)(iVar9 + 0x13c)" * (cast_expression "(undefined4 *)(iVar9 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x13c)" ( (binary_expression "iVar9 + 0x13c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }" if (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) )) (compound_statement "{\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }" { (expression_statement "local_78 = local_40;" (assignment_expression "local_78 = local_40" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000ea1da:\n          FUN_00044090();\n        }" { (labeled_statement "LAB_000ea1da:\n          FUN_00044090();" statement_identifier : (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;)) })) (if_statement "if (local_78 != 0) goto LAB_000ea1eb;" if (parenthesized_expression "(local_78 != 0)" ( (binary_expression "local_78 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ea1eb;" goto statement_identifier ;)) (expression_statement "FUN_000e9ba0();" (call_expression "FUN_000e9ba0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;" if (parenthesized_expression "(*(char *)(iVar9 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar9 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar9 + 0x4d)" * (cast_expression "(char *)(iVar9 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4d)" ( (binary_expression "iVar9 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea1f1;" goto statement_identifier ;)) }) (else_clause "else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }" else (compound_statement "{\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }" { (if_statement "if (iVar12 != 0) goto LAB_000ea1da;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ea1da;" goto statement_identifier ;)) (labeled_statement "LAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }" statement_identifier : (if_statement "if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }" if (parenthesized_expression "(*(char *)(iVar9 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar9 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar9 + 0x4d)" * (cast_expression "(char *)(iVar9 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4d)" ( (binary_expression "iVar9 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }" { (labeled_statement "LAB_000ea1f1:\n          local_78 = 7;" statement_identifier : (expression_statement "local_78 = 7;" (assignment_expression "local_78 = 7" identifier = number_literal) ;)) (expression_statement "FUN_00066830();" (call_expression "FUN_00066830()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1f) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1f) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1f) & 8)" ( (binary_expression "*(byte *)(iVar9 + 0x1f) & 8" (pointer_expression "*(byte *)(iVar9 + 0x1f)" * (cast_expression "(byte *)(iVar9 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1f)" ( (binary_expression "iVar9 + 0x1f" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000ea20b;" goto statement_identifier ;)) }))) (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + identifier) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "iVar12 = *(int *)(iVar3 + 4);" (assignment_expression "iVar12 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_78 = iVar10;" (assignment_expression "local_78 = iVar10" identifier = identifier) ;) })))) (if_statement "if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }" { (expression_statement "FUN_000b9030();" (call_expression "FUN_000b9030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = *(int *)(iVar3 + 4);" (assignment_expression "iVar12 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar12 + 9) != '\0')" ( (binary_expression "*(char *)(iVar12 + 9) != '\0'" (pointer_expression "*(char *)(iVar12 + 9)" * (cast_expression "(char *)(iVar12 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 9)" ( (binary_expression "iVar12 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }" { (expression_statement "piVar2 = (int *)(iVar12 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar12 + 0xc)" identifier = (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\nLAB_000ea658:\n        FUN_000453f0();\n      }" { (labeled_statement "LAB_000ea658:\n        FUN_000453f0();" statement_identifier : (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;)) })) })) (if_statement "if (local_78 == 0) goto LAB_000ea236;" if (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ea236;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }" statement_identifier : (if_statement "if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }" if (parenthesized_expression "(((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0))" ( (binary_expression "((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)" (parenthesized_expression "((local_78 == 7) || (local_78 == 0xc0a))" ( (binary_expression "(local_78 == 7) || (local_78 == 0xc0a)" (parenthesized_expression "(local_78 == 7)" ( (binary_expression "local_78 == 7" identifier == number_literal) )) || (parenthesized_expression "(local_78 == 0xc0a)" ( (binary_expression "local_78 == 0xc0a" identifier == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar9 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar9 + 0x4c)" * (cast_expression "(uint *)(iVar9 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4c)" ( (binary_expression "iVar9 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    FUN_000446a0();\n  }" { (expression_statement "FUN_000446a0();" (call_expression "FUN_000446a0()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }" if (parenthesized_expression "(-1 < lVar19)" ( (binary_expression "-1 < lVar19" number_literal < identifier) )) (compound_statement "{\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }" { (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + identifier) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar9 + 0x18) & 0xfffffff7" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) & number_literal)) ;) })) (if_statement "if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }" if (parenthesized_expression "((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12))" ( (binary_expression "(*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)" (parenthesized_expression "(*(int *)(iVar9 + 0x34) == 0)" ( (binary_expression "*(int *)(iVar9 + 0x34) == 0" (pointer_expression "*(int *)(iVar9 + 0x34)" * (cast_expression "(int *)(iVar9 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x34)" ( (binary_expression "iVar9 + 0x34" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)" ( (comma_expression "iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x14)" identifier = (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) , (binary_expression "0 < iVar12" number_literal < identifier)) ))) )) (compound_statement "{\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);" do (compound_statement "{\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    }" { (expression_statement "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);" (assignment_expression "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" identifier = (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar18 * 0x10" identifier * number_literal)) ))))) ;) (expression_statement "bVar13 = *(byte *)(iVar17 + 0x4e);" (assignment_expression "bVar13 = *(byte *)(iVar17 + 0x4e)" identifier = (pointer_expression "*(byte *)(iVar17 + 0x4e)" * (cast_expression "(byte *)(iVar17 + 0x4e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) ))))) ;) (while_statement "while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }" while (parenthesized_expression "((bVar13 & 8) == 0)" ( (binary_expression "(bVar13 & 8) == 0" (parenthesized_expression "(bVar13 & 8)" ( (binary_expression "bVar13 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }" { (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (iVar12 <= iVar18) goto LAB_000ea236;" if (parenthesized_expression "(iVar12 <= iVar18)" ( (binary_expression "iVar12 <= iVar18" identifier <= identifier) )) (goto_statement "goto LAB_000ea236;" goto statement_identifier ;)) (expression_statement "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);" (assignment_expression "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" identifier = (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar18 * 0x10" identifier * number_literal)) ))))) ;) (expression_statement "bVar13 = *(byte *)(iVar17 + 0x4e);" (assignment_expression "bVar13 = *(byte *)(iVar17 + 0x4e)" identifier = (pointer_expression "*(byte *)(iVar17 + 0x4e)" * (cast_expression "(byte *)(iVar17 + 0x4e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) ))))) ;) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00066240(iVar17);" (call_expression "FUN_00066240(iVar17)" identifier (argument_list "(iVar17)" ( identifier ))) ;) (expression_statement "iVar12 = *(int *)(iVar9 + 0x14);" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x14)" identifier = (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar18 < iVar12)" ( (binary_expression "iVar18 < iVar12" identifier < identifier) )) ;) })) (labeled_statement "LAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;" statement_identifier : (expression_statement "*(undefined1 *)(iVar9 + 0xa1) = 0;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa1) = 0" (pointer_expression "*(undefined1 *)(iVar9 + 0xa1)" * (cast_expression "(undefined1 *)(iVar9 + 0xa1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa1)" ( (binary_expression "iVar9 + 0xa1" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return local_78;\n  }" { (return_statement "return local_78;" return identifier ;) })) comment (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int sqlite3InitOne(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)\n\n{\n  u16 *puVar1;\n  ushort *puVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  u8 uVar5;\n  uint uVar6;\n  sqlite3_xauth zSql;\n  Schema *p;\n  uint uVar7;\n  bool bVar8;\n  longlong lVar9;\n  char **ppcVar10;\n  sqlite3 *db_00;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  Btree *pBVar14;\n  char **pz;\n  int *extraout_ECX;\n  int *piVar15;\n  int iVar16;\n  byte bVar17;\n  int extraout_EDX;\n  int extraout_EDX_00;\n  int extraout_EDX_01;\n  BtShared *pBVar18;\n  BtShared *pBVar19;\n  int *piVar20;\n  int iVar21;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar22;\n  longlong lVar23;\n  sqlite3 *pData;\n  Vdbe *pOld;\n  Btree *in_stack_ffffff84;\n  char *in_stack_ffffff88;\n  int iVar24;\n  int *piVar25;\n  u8 local_70;\n  sqlite3_stmt *pStmt;\n  InitData initData;\n  int meta [5];\n  \n  lVar23 = __x86_get_pc_thunk_di();\n  iVar21 = (int)((ulonglong)lVar23 >> 0x20);\n  db_00 = (sqlite3 *)lVar23;\n  iVar4 = *(int *)(in_GS_OFFSET + 0x14);\n  (db_00->init).busy = '\x01';\n  iVar11 = unaff_EDI + 0x70515;\n  if (iVar21 == 1) {\n    iVar11 = unaff_EDI + 0x7083b;\n  }\n  piVar20 = (int *)(iVar21 * 0x10);\n  initData.rc = 0;\n  initData.mInitFlags = (u32)db;\n  initData.nInitRow = 1;\n  puVar1 = &(db_00->aDb[iVar21].pSchema)->schemaFlags;\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar9 = lVar23;\n  if (db_00->mallocFailed == '\0') {\n    initData.db = db_00;\n    initData.iDb = iVar21;\n    iVar12 = sqlite3_strnicmp((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7);\n    lVar9 = CONCAT44(initData.iDb,initData.db);\n    if (iVar12 != 0) goto LAB_000e9efd;\n    local_70 = (u8)((ulonglong)lVar23 >> 0x20);\n    uVar5 = (db_00->init).iDb;\n    pOld = (Vdbe *)&pStmt;\n    pStmt = (sqlite3_stmt *)0x0;\n    (db_00->init).iDb = local_70;\n    sqlite3GetInt32((char *)(unaff_EDI + 0x74f14),(int *)pOld);\n    puVar3 = &(db_00->init).field_0x6;\n    *puVar3 = *puVar3 & 0xfe;\n    (db_00->init).newTnum = (int)pStmt;\n    pcVar13 = (char *)0x0;\n    sqlite3LockAndPrepare\n              (db_00,(char *)(unaff_EDI + 0x81141),0,0,pOld,(sqlite3_stmt **)0x0,\n               (char **)in_stack_ffffff84);\n    iVar12 = db_00->errCode;\n    (db_00->init).iDb = uVar5;\n    if ((iVar12 != 0) && (((db_00->init).field_0x6 & 1) == 0)) {\n      initData.rc = iVar12;\n      if (iVar12 == 7) {\n        uVar6._0_1_ = db_00->temp_store;\n        uVar6._1_1_ = db_00->mallocFailed;\n        uVar6._2_1_ = db_00->bBenignMalloc;\n        uVar6._3_1_ = db_00->dfltLockMode;\n        if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }\n      }\n      else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }\n    }\n    sqlite3_finalize(pStmt);\n    iVar12 = extraout_EDX_01;\n    iVar16 = initData.rc;\n  }\n  else {\nLAB_000e9efd:\n    initData.iDb = (int)((ulonglong)lVar9 >> 0x20);\n    initData.db = (sqlite3 *)lVar9;\n    corruptSchema((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20);\n    iVar12 = extraout_EDX;\n    iVar16 = initData.rc;\n  }\n  piVar25 = piVar20;\n  initData.rc = iVar16;\n  if (iVar16 != 0) goto LAB_000ea327;\n  ppcVar10 = &db_00->aDb->zDbSName;\n  pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n  if (pBVar14 == (Btree *)0x0) {\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  piVar15 = piVar20;\n  iVar24 = iVar16;\n  if (pBVar14->sharable != '\0') {\n    sqlite3BtreeEnter(pBVar14);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    piVar15 = extraout_ECX;\n    iVar12 = extraout_EDX_00;\n    iVar24 = iVar16;\n  }\n  bVar8 = false;\n  if (pBVar14->inTrans == '\0') {\n    iVar16 = sqlite3BtreeBeginTrans(pBVar14,iVar12,piVar15);\n    if (iVar16 == 0) {\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      bVar8 = true;\n      uVar5 = pBVar14->sharable;\n      pBVar19 = pBVar14->pBt;\n      goto joined_r0x000ea4e3;\n    }\n    pcVar13 = sqlite3ErrStr(iVar16);\n    sqlite3SetString(pz,db_00,pcVar13);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    uVar5 = pBVar14->sharable;\n    pBVar19 = pBVar14->pBt;\njoined_r0x000ea4e3:\n    if (uVar5 == '\0') {\n      pBVar18 = pBVar14->pBt;\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    }\n    else {\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\nLAB_000ea0bd:\n    if ((db_00->flags & 0x2000000) == 0) {\n      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];\n      if (meta[4] == 0) goto LAB_000ea449;\n      if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }\n      bVar17 = db_00->enc;\n      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;\n      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));\n      iVar16 = 1;\nLAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    else {\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }\n    if (bVar8) {\n      sqlite3BtreeCommit(pBVar14);\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 == 0) {\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\n    if (iVar16 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((iVar16 == 7) || (iVar16 == 0xc0a)) &&\n     (uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0)\n     ) {\n    sqlite3OomFault(db_00);\n  }\n  if (-1 < lVar23) {\n    puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n    *puVar2 = *puVar2 | 8;\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 8;\n    db_00->mDbFlags = db_00->mDbFlags & 0xfffffff7;\n  }\n  if ((db_00->nSchemaLock == 0) && (iVar11 = db_00->nDb, 0 < iVar11)) {\n    iVar21 = 0;\n    do {\n      p = db_00->aDb[iVar21].pSchema;\n      bVar17 = (byte)p->schemaFlags;\n      while ((bVar17 & 8) == 0) {\n        iVar21 = iVar21 + 1;\n        if (iVar11 <= iVar21) goto LAB_000ea236;\n        p = db_00->aDb[iVar21].pSchema;\n        bVar17 = (byte)p->schemaFlags;\n      }\n      iVar21 = iVar21 + 1;\n      sqlite3SchemaClear(p);\n      iVar11 = db_00->nDb;\n    } while (iVar21 < iVar11);\n  }\nLAB_000ea236:\n  (db_00->init).busy = '\0';\n  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar16;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" (function_definition "int sqlite3InitOne(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)\n\n{\n  u16 *puVar1;\n  ushort *puVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  u8 uVar5;\n  uint uVar6;\n  sqlite3_xauth zSql;\n  Schema *p;\n  uint uVar7;\n  bool bVar8;\n  longlong lVar9;\n  char **ppcVar10;\n  sqlite3 *db_00;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  Btree *pBVar14;\n  char **pz;\n  int *extraout_ECX;\n  int *piVar15;\n  int iVar16;\n  byte bVar17;\n  int extraout_EDX;\n  int extraout_EDX_00;\n  int extraout_EDX_01;\n  BtShared *pBVar18;\n  BtShared *pBVar19;\n  int *piVar20;\n  int iVar21;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar22;\n  longlong lVar23;\n  sqlite3 *pData;\n  Vdbe *pOld;\n  Btree *in_stack_ffffff84;\n  char *in_stack_ffffff88;\n  int iVar24;\n  int *piVar25;\n  u8 local_70;\n  sqlite3_stmt *pStmt;\n  InitData initData;\n  int meta [5];\n  \n  lVar23 = __x86_get_pc_thunk_di();\n  iVar21 = (int)((ulonglong)lVar23 >> 0x20);\n  db_00 = (sqlite3 *)lVar23;\n  iVar4 = *(int *)(in_GS_OFFSET + 0x14);\n  (db_00->init).busy = '\x01';\n  iVar11 = unaff_EDI + 0x70515;\n  if (iVar21 == 1) {\n    iVar11 = unaff_EDI + 0x7083b;\n  }\n  piVar20 = (int *)(iVar21 * 0x10);\n  initData.rc = 0;\n  initData.mInitFlags = (u32)db;\n  initData.nInitRow = 1;\n  puVar1 = &(db_00->aDb[iVar21].pSchema)->schemaFlags;\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar9 = lVar23;\n  if (db_00->mallocFailed == '\0') {\n    initData.db = db_00;\n    initData.iDb = iVar21;\n    iVar12 = sqlite3_strnicmp((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7);\n    lVar9 = CONCAT44(initData.iDb,initData.db);\n    if (iVar12 != 0) goto LAB_000e9efd;\n    local_70 = (u8)((ulonglong)lVar23 >> 0x20);\n    uVar5 = (db_00->init).iDb;\n    pOld = (Vdbe *)&pStmt;\n    pStmt = (sqlite3_stmt *)0x0;\n    (db_00->init).iDb = local_70;\n    sqlite3GetInt32((char *)(unaff_EDI + 0x74f14),(int *)pOld);\n    puVar3 = &(db_00->init).field_0x6;\n    *puVar3 = *puVar3 & 0xfe;\n    (db_00->init).newTnum = (int)pStmt;\n    pcVar13 = (char *)0x0;\n    sqlite3LockAndPrepare\n              (db_00,(char *)(unaff_EDI + 0x81141),0,0,pOld,(sqlite3_stmt **)0x0,\n               (char **)in_stack_ffffff84);\n    iVar12 = db_00->errCode;\n    (db_00->init).iDb = uVar5;\n    if ((iVar12 != 0) && (((db_00->init).field_0x6 & 1) == 0)) {\n      initData.rc = iVar12;\n      if (iVar12 == 7) {\n        uVar6._0_1_ = db_00->temp_store;\n        uVar6._1_1_ = db_00->mallocFailed;\n        uVar6._2_1_ = db_00->bBenignMalloc;\n        uVar6._3_1_ = db_00->dfltLockMode;\n        if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }\n      }\n      else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }\n    }\n    sqlite3_finalize(pStmt);\n    iVar12 = extraout_EDX_01;\n    iVar16 = initData.rc;\n  }\n  else {\nLAB_000e9efd:\n    initData.iDb = (int)((ulonglong)lVar9 >> 0x20);\n    initData.db = (sqlite3 *)lVar9;\n    corruptSchema((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20);\n    iVar12 = extraout_EDX;\n    iVar16 = initData.rc;\n  }\n  piVar25 = piVar20;\n  initData.rc = iVar16;\n  if (iVar16 != 0) goto LAB_000ea327;\n  ppcVar10 = &db_00->aDb->zDbSName;\n  pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n  if (pBVar14 == (Btree *)0x0) {\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  piVar15 = piVar20;\n  iVar24 = iVar16;\n  if (pBVar14->sharable != '\0') {\n    sqlite3BtreeEnter(pBVar14);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    piVar15 = extraout_ECX;\n    iVar12 = extraout_EDX_00;\n    iVar24 = iVar16;\n  }\n  bVar8 = false;\n  if (pBVar14->inTrans == '\0') {\n    iVar16 = sqlite3BtreeBeginTrans(pBVar14,iVar12,piVar15);\n    if (iVar16 == 0) {\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      bVar8 = true;\n      uVar5 = pBVar14->sharable;\n      pBVar19 = pBVar14->pBt;\n      goto joined_r0x000ea4e3;\n    }\n    pcVar13 = sqlite3ErrStr(iVar16);\n    sqlite3SetString(pz,db_00,pcVar13);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    uVar5 = pBVar14->sharable;\n    pBVar19 = pBVar14->pBt;\njoined_r0x000ea4e3:\n    if (uVar5 == '\0') {\n      pBVar18 = pBVar14->pBt;\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    }\n    else {\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\nLAB_000ea0bd:\n    if ((db_00->flags & 0x2000000) == 0) {\n      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];\n      if (meta[4] == 0) goto LAB_000ea449;\n      if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }\n      bVar17 = db_00->enc;\n      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;\n      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));\n      iVar16 = 1;\nLAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    else {\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }\n    if (bVar8) {\n      sqlite3BtreeCommit(pBVar14);\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 == 0) {\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\n    if (iVar16 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((iVar16 == 7) || (iVar16 == 0xc0a)) &&\n     (uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0)\n     ) {\n    sqlite3OomFault(db_00);\n  }\n  if (-1 < lVar23) {\n    puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n    *puVar2 = *puVar2 | 8;\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 8;\n    db_00->mDbFlags = db_00->mDbFlags & 0xfffffff7;\n  }\n  if ((db_00->nSchemaLock == 0) && (iVar11 = db_00->nDb, 0 < iVar11)) {\n    iVar21 = 0;\n    do {\n      p = db_00->aDb[iVar21].pSchema;\n      bVar17 = (byte)p->schemaFlags;\n      while ((bVar17 & 8) == 0) {\n        iVar21 = iVar21 + 1;\n        if (iVar11 <= iVar21) goto LAB_000ea236;\n        p = db_00->aDb[iVar21].pSchema;\n        bVar17 = (byte)p->schemaFlags;\n      }\n      iVar21 = iVar21 + 1;\n      sqlite3SchemaClear(p);\n      iVar11 = db_00->nDb;\n    } while (iVar21 < iVar11);\n  }\nLAB_000ea236:\n  (db_00->init).busy = '\0';\n  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar16;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "sqlite3InitOne(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)" identifier (parameter_list "(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)" ( (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "int iDb" primitive_type identifier) , (parameter_declaration "char **pzErrMsg" primitive_type (pointer_declarator "**pzErrMsg" * (pointer_declarator "*pzErrMsg" * identifier))) , (parameter_declaration "u32 mFlags" type_identifier identifier) ))) (compound_statement "{\n  u16 *puVar1;\n  ushort *puVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  u8 uVar5;\n  uint uVar6;\n  sqlite3_xauth zSql;\n  Schema *p;\n  uint uVar7;\n  bool bVar8;\n  longlong lVar9;\n  char **ppcVar10;\n  sqlite3 *db_00;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  Btree *pBVar14;\n  char **pz;\n  int *extraout_ECX;\n  int *piVar15;\n  int iVar16;\n  byte bVar17;\n  int extraout_EDX;\n  int extraout_EDX_00;\n  int extraout_EDX_01;\n  BtShared *pBVar18;\n  BtShared *pBVar19;\n  int *piVar20;\n  int iVar21;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar22;\n  longlong lVar23;\n  sqlite3 *pData;\n  Vdbe *pOld;\n  Btree *in_stack_ffffff84;\n  char *in_stack_ffffff88;\n  int iVar24;\n  int *piVar25;\n  u8 local_70;\n  sqlite3_stmt *pStmt;\n  InitData initData;\n  int meta [5];\n  \n  lVar23 = __x86_get_pc_thunk_di();\n  iVar21 = (int)((ulonglong)lVar23 >> 0x20);\n  db_00 = (sqlite3 *)lVar23;\n  iVar4 = *(int *)(in_GS_OFFSET + 0x14);\n  (db_00->init).busy = '\x01';\n  iVar11 = unaff_EDI + 0x70515;\n  if (iVar21 == 1) {\n    iVar11 = unaff_EDI + 0x7083b;\n  }\n  piVar20 = (int *)(iVar21 * 0x10);\n  initData.rc = 0;\n  initData.mInitFlags = (u32)db;\n  initData.nInitRow = 1;\n  puVar1 = &(db_00->aDb[iVar21].pSchema)->schemaFlags;\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar9 = lVar23;\n  if (db_00->mallocFailed == '\0') {\n    initData.db = db_00;\n    initData.iDb = iVar21;\n    iVar12 = sqlite3_strnicmp((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7);\n    lVar9 = CONCAT44(initData.iDb,initData.db);\n    if (iVar12 != 0) goto LAB_000e9efd;\n    local_70 = (u8)((ulonglong)lVar23 >> 0x20);\n    uVar5 = (db_00->init).iDb;\n    pOld = (Vdbe *)&pStmt;\n    pStmt = (sqlite3_stmt *)0x0;\n    (db_00->init).iDb = local_70;\n    sqlite3GetInt32((char *)(unaff_EDI + 0x74f14),(int *)pOld);\n    puVar3 = &(db_00->init).field_0x6;\n    *puVar3 = *puVar3 & 0xfe;\n    (db_00->init).newTnum = (int)pStmt;\n    pcVar13 = (char *)0x0;\n    sqlite3LockAndPrepare\n              (db_00,(char *)(unaff_EDI + 0x81141),0,0,pOld,(sqlite3_stmt **)0x0,\n               (char **)in_stack_ffffff84);\n    iVar12 = db_00->errCode;\n    (db_00->init).iDb = uVar5;\n    if ((iVar12 != 0) && (((db_00->init).field_0x6 & 1) == 0)) {\n      initData.rc = iVar12;\n      if (iVar12 == 7) {\n        uVar6._0_1_ = db_00->temp_store;\n        uVar6._1_1_ = db_00->mallocFailed;\n        uVar6._2_1_ = db_00->bBenignMalloc;\n        uVar6._3_1_ = db_00->dfltLockMode;\n        if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }\n      }\n      else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }\n    }\n    sqlite3_finalize(pStmt);\n    iVar12 = extraout_EDX_01;\n    iVar16 = initData.rc;\n  }\n  else {\nLAB_000e9efd:\n    initData.iDb = (int)((ulonglong)lVar9 >> 0x20);\n    initData.db = (sqlite3 *)lVar9;\n    corruptSchema((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20);\n    iVar12 = extraout_EDX;\n    iVar16 = initData.rc;\n  }\n  piVar25 = piVar20;\n  initData.rc = iVar16;\n  if (iVar16 != 0) goto LAB_000ea327;\n  ppcVar10 = &db_00->aDb->zDbSName;\n  pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n  if (pBVar14 == (Btree *)0x0) {\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  piVar15 = piVar20;\n  iVar24 = iVar16;\n  if (pBVar14->sharable != '\0') {\n    sqlite3BtreeEnter(pBVar14);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    piVar15 = extraout_ECX;\n    iVar12 = extraout_EDX_00;\n    iVar24 = iVar16;\n  }\n  bVar8 = false;\n  if (pBVar14->inTrans == '\0') {\n    iVar16 = sqlite3BtreeBeginTrans(pBVar14,iVar12,piVar15);\n    if (iVar16 == 0) {\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      bVar8 = true;\n      uVar5 = pBVar14->sharable;\n      pBVar19 = pBVar14->pBt;\n      goto joined_r0x000ea4e3;\n    }\n    pcVar13 = sqlite3ErrStr(iVar16);\n    sqlite3SetString(pz,db_00,pcVar13);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    uVar5 = pBVar14->sharable;\n    pBVar19 = pBVar14->pBt;\njoined_r0x000ea4e3:\n    if (uVar5 == '\0') {\n      pBVar18 = pBVar14->pBt;\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    }\n    else {\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\nLAB_000ea0bd:\n    if ((db_00->flags & 0x2000000) == 0) {\n      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];\n      if (meta[4] == 0) goto LAB_000ea449;\n      if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }\n      bVar17 = db_00->enc;\n      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;\n      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));\n      iVar16 = 1;\nLAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    else {\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }\n    if (bVar8) {\n      sqlite3BtreeCommit(pBVar14);\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 == 0) {\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\n    if (iVar16 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((iVar16 == 7) || (iVar16 == 0xc0a)) &&\n     (uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0)\n     ) {\n    sqlite3OomFault(db_00);\n  }\n  if (-1 < lVar23) {\n    puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n    *puVar2 = *puVar2 | 8;\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 8;\n    db_00->mDbFlags = db_00->mDbFlags & 0xfffffff7;\n  }\n  if ((db_00->nSchemaLock == 0) && (iVar11 = db_00->nDb, 0 < iVar11)) {\n    iVar21 = 0;\n    do {\n      p = db_00->aDb[iVar21].pSchema;\n      bVar17 = (byte)p->schemaFlags;\n      while ((bVar17 & 8) == 0) {\n        iVar21 = iVar21 + 1;\n        if (iVar11 <= iVar21) goto LAB_000ea236;\n        p = db_00->aDb[iVar21].pSchema;\n        bVar17 = (byte)p->schemaFlags;\n      }\n      iVar21 = iVar21 + 1;\n      sqlite3SchemaClear(p);\n      iVar11 = db_00->nDb;\n    } while (iVar21 < iVar11);\n  }\nLAB_000ea236:\n  (db_00->init).busy = '\0';\n  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar16;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "u16 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ushort *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "u8 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "sqlite3_xauth zSql;" type_identifier identifier ;) (declaration "Schema *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "char **ppcVar10;" primitive_type (pointer_declarator "**ppcVar10" * (pointer_declarator "*ppcVar10" * identifier)) ;) (declaration "sqlite3 *db_00;" type_identifier (pointer_declarator "*db_00" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "Btree *pBVar14;" type_identifier (pointer_declarator "*pBVar14" * identifier) ;) (declaration "char **pz;" primitive_type (pointer_declarator "**pz" * (pointer_declarator "*pz" * identifier)) ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "int extraout_EDX_00;" primitive_type identifier ;) (declaration "int extraout_EDX_01;" primitive_type identifier ;) (declaration "BtShared *pBVar18;" type_identifier (pointer_declarator "*pBVar18" * identifier) ;) (declaration "BtShared *pBVar19;" type_identifier (pointer_declarator "*pBVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "longlong lVar23;" type_identifier identifier ;) (declaration "sqlite3 *pData;" type_identifier (pointer_declarator "*pData" * identifier) ;) (declaration "Vdbe *pOld;" type_identifier (pointer_declarator "*pOld" * identifier) ;) (declaration "Btree *in_stack_ffffff84;" type_identifier (pointer_declarator "*in_stack_ffffff84" * identifier) ;) (declaration "char *in_stack_ffffff88;" primitive_type (pointer_declarator "*in_stack_ffffff88" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "u8 local_70;" type_identifier identifier ;) (declaration "sqlite3_stmt *pStmt;" type_identifier (pointer_declarator "*pStmt" * identifier) ;) (declaration "InitData initData;" type_identifier identifier ;) (declaration "int meta [5];" primitive_type (array_declarator "meta [5]" identifier [ number_literal ]) ;) (expression_statement "lVar23 = __x86_get_pc_thunk_di();" (assignment_expression "lVar23 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar21 = (int)((ulonglong)lVar23 >> 0x20);" (assignment_expression "iVar21 = (int)((ulonglong)lVar23 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "db_00 = (sqlite3 *)lVar23;" (assignment_expression "db_00 = (sqlite3 *)lVar23" identifier = (cast_expression "(sqlite3 *)lVar23" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar4 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar4 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "(db_00->init).busy = '\x01';" (assignment_expression "(db_00->init).busy = '\x01'" (field_expression "(db_00->init).busy" (parenthesized_expression "(db_00->init)" ( (field_expression "db_00->init" identifier -> field_identifier) )) . field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar11 = unaff_EDI + 0x70515;" (assignment_expression "iVar11 = unaff_EDI + 0x70515" identifier = (binary_expression "unaff_EDI + 0x70515" identifier + number_literal)) ;) (if_statement "if (iVar21 == 1) {\n    iVar11 = unaff_EDI + 0x7083b;\n  }" if (parenthesized_expression "(iVar21 == 1)" ( (binary_expression "iVar21 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar11 = unaff_EDI + 0x7083b;\n  }" { (expression_statement "iVar11 = unaff_EDI + 0x7083b;" (assignment_expression "iVar11 = unaff_EDI + 0x7083b" identifier = (binary_expression "unaff_EDI + 0x7083b" identifier + number_literal)) ;) })) (expression_statement "piVar20 = (int *)(iVar21 * 0x10);" (assignment_expression "piVar20 = (int *)(iVar21 * 0x10)" identifier = (cast_expression "(int *)(iVar21 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 * 0x10)" ( (binary_expression "iVar21 * 0x10" identifier * number_literal) )))) ;) (expression_statement "initData.rc = 0;" (assignment_expression "initData.rc = 0" (field_expression "initData.rc" identifier . field_identifier) = number_literal) ;) (expression_statement "initData.mInitFlags = (u32)db;" (assignment_expression "initData.mInitFlags = (u32)db" (field_expression "initData.mInitFlags" identifier . field_identifier) = (cast_expression "(u32)db" ( (type_descriptor "u32" type_identifier) ) identifier)) ;) (expression_statement "initData.nInitRow = 1;" (assignment_expression "initData.nInitRow = 1" (field_expression "initData.nInitRow" identifier . field_identifier) = number_literal) ;) (expression_statement "puVar1 = &(db_00->aDb[iVar21].pSchema)->schemaFlags;" (assignment_expression "puVar1 = &(db_00->aDb[iVar21].pSchema)->schemaFlags" identifier = (pointer_expression "&(db_00->aDb[iVar21].pSchema)->schemaFlags" & (field_expression "(db_00->aDb[iVar21].pSchema)->schemaFlags" (parenthesized_expression "(db_00->aDb[iVar21].pSchema)" ( (field_expression "db_00->aDb[iVar21].pSchema" (subscript_expression "db_00->aDb[iVar21]" (field_expression "db_00->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier) )) -> field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0xfffb;" (assignment_expression "*puVar1 = *puVar1 & 0xfffb" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xfffb" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "lVar9 = lVar23;" (assignment_expression "lVar9 = lVar23" identifier = identifier) ;) (if_statement "if (db_00->mallocFailed == '\0') {\n    initData.db = db_00;\n    initData.iDb = iVar21;\n    iVar12 = sqlite3_strnicmp((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7);\n    lVar9 = CONCAT44(initData.iDb,initData.db);\n    if (iVar12 != 0) goto LAB_000e9efd;\n    local_70 = (u8)((ulonglong)lVar23 >> 0x20);\n    uVar5 = (db_00->init).iDb;\n    pOld = (Vdbe *)&pStmt;\n    pStmt = (sqlite3_stmt *)0x0;\n    (db_00->init).iDb = local_70;\n    sqlite3GetInt32((char *)(unaff_EDI + 0x74f14),(int *)pOld);\n    puVar3 = &(db_00->init).field_0x6;\n    *puVar3 = *puVar3 & 0xfe;\n    (db_00->init).newTnum = (int)pStmt;\n    pcVar13 = (char *)0x0;\n    sqlite3LockAndPrepare\n              (db_00,(char *)(unaff_EDI + 0x81141),0,0,pOld,(sqlite3_stmt **)0x0,\n               (char **)in_stack_ffffff84);\n    iVar12 = db_00->errCode;\n    (db_00->init).iDb = uVar5;\n    if ((iVar12 != 0) && (((db_00->init).field_0x6 & 1) == 0)) {\n      initData.rc = iVar12;\n      if (iVar12 == 7) {\n        uVar6._0_1_ = db_00->temp_store;\n        uVar6._1_1_ = db_00->mallocFailed;\n        uVar6._2_1_ = db_00->bBenignMalloc;\n        uVar6._3_1_ = db_00->dfltLockMode;\n        if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }\n      }\n      else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }\n    }\n    sqlite3_finalize(pStmt);\n    iVar12 = extraout_EDX_01;\n    iVar16 = initData.rc;\n  }\n  else {\nLAB_000e9efd:\n    initData.iDb = (int)((ulonglong)lVar9 >> 0x20);\n    initData.db = (sqlite3 *)lVar9;\n    corruptSchema((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20);\n    iVar12 = extraout_EDX;\n    iVar16 = initData.rc;\n  }" if (parenthesized_expression "(db_00->mallocFailed == '\0')" ( (binary_expression "db_00->mallocFailed == '\0'" (field_expression "db_00->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    initData.db = db_00;\n    initData.iDb = iVar21;\n    iVar12 = sqlite3_strnicmp((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7);\n    lVar9 = CONCAT44(initData.iDb,initData.db);\n    if (iVar12 != 0) goto LAB_000e9efd;\n    local_70 = (u8)((ulonglong)lVar23 >> 0x20);\n    uVar5 = (db_00->init).iDb;\n    pOld = (Vdbe *)&pStmt;\n    pStmt = (sqlite3_stmt *)0x0;\n    (db_00->init).iDb = local_70;\n    sqlite3GetInt32((char *)(unaff_EDI + 0x74f14),(int *)pOld);\n    puVar3 = &(db_00->init).field_0x6;\n    *puVar3 = *puVar3 & 0xfe;\n    (db_00->init).newTnum = (int)pStmt;\n    pcVar13 = (char *)0x0;\n    sqlite3LockAndPrepare\n              (db_00,(char *)(unaff_EDI + 0x81141),0,0,pOld,(sqlite3_stmt **)0x0,\n               (char **)in_stack_ffffff84);\n    iVar12 = db_00->errCode;\n    (db_00->init).iDb = uVar5;\n    if ((iVar12 != 0) && (((db_00->init).field_0x6 & 1) == 0)) {\n      initData.rc = iVar12;\n      if (iVar12 == 7) {\n        uVar6._0_1_ = db_00->temp_store;\n        uVar6._1_1_ = db_00->mallocFailed;\n        uVar6._2_1_ = db_00->bBenignMalloc;\n        uVar6._3_1_ = db_00->dfltLockMode;\n        if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }\n      }\n      else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }\n    }\n    sqlite3_finalize(pStmt);\n    iVar12 = extraout_EDX_01;\n    iVar16 = initData.rc;\n  }" { (expression_statement "initData.db = db_00;" (assignment_expression "initData.db = db_00" (field_expression "initData.db" identifier . field_identifier) = identifier) ;) (expression_statement "initData.iDb = iVar21;" (assignment_expression "initData.iDb = iVar21" (field_expression "initData.iDb" identifier . field_identifier) = identifier) ;) (expression_statement "iVar12 = sqlite3_strnicmp((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7);" (assignment_expression "iVar12 = sqlite3_strnicmp((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7)" identifier = (call_expression "sqlite3_strnicmp((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7)" identifier (argument_list "((char *)(unaff_EDI + 0x81141),(char *)(unaff_EDI + 0x73caa),7)" ( (cast_expression "(char *)(unaff_EDI + 0x81141)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x81141)" ( (binary_expression "unaff_EDI + 0x81141" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EDI + 0x73caa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x73caa)" ( (binary_expression "unaff_EDI + 0x73caa" identifier + number_literal) ))) , number_literal )))) ;) (expression_statement "lVar9 = CONCAT44(initData.iDb,initData.db);" (assignment_expression "lVar9 = CONCAT44(initData.iDb,initData.db)" identifier = (call_expression "CONCAT44(initData.iDb,initData.db)" identifier (argument_list "(initData.iDb,initData.db)" ( (field_expression "initData.iDb" identifier . field_identifier) , (field_expression "initData.db" identifier . field_identifier) )))) ;) (if_statement "if (iVar12 != 0) goto LAB_000e9efd;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000e9efd;" goto statement_identifier ;)) (expression_statement "local_70 = (u8)((ulonglong)lVar23 >> 0x20);" (assignment_expression "local_70 = (u8)((ulonglong)lVar23 >> 0x20)" identifier = (call_expression "(u8)((ulonglong)lVar23 >> 0x20)" (parenthesized_expression "(u8)" ( identifier )) (argument_list "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = (db_00->init).iDb;" (assignment_expression "uVar5 = (db_00->init).iDb" identifier = (field_expression "(db_00->init).iDb" (parenthesized_expression "(db_00->init)" ( (field_expression "db_00->init" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pOld = (Vdbe *)&pStmt;" (assignment_expression "pOld = (Vdbe *)&pStmt" identifier = (cast_expression "(Vdbe *)&pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pStmt" & identifier))) ;) (expression_statement "pStmt = (sqlite3_stmt *)0x0;" (assignment_expression "pStmt = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(db_00->init).iDb = local_70;" (assignment_expression "(db_00->init).iDb = local_70" (field_expression "(db_00->init).iDb" (parenthesized_expression "(db_00->init)" ( (field_expression "db_00->init" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "sqlite3GetInt32((char *)(unaff_EDI + 0x74f14),(int *)pOld);" (call_expression "sqlite3GetInt32((char *)(unaff_EDI + 0x74f14),(int *)pOld)" identifier (argument_list "((char *)(unaff_EDI + 0x74f14),(int *)pOld)" ( (cast_expression "(char *)(unaff_EDI + 0x74f14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x74f14)" ( (binary_expression "unaff_EDI + 0x74f14" identifier + number_literal) ))) , (cast_expression "(int *)pOld" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "puVar3 = &(db_00->init).field_0x6;" (assignment_expression "puVar3 = &(db_00->init).field_0x6" identifier = (pointer_expression "&(db_00->init).field_0x6" & (field_expression "(db_00->init).field_0x6" (parenthesized_expression "(db_00->init)" ( (field_expression "db_00->init" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar3 = *puVar3 & 0xfe;" (assignment_expression "*puVar3 = *puVar3 & 0xfe" (pointer_expression "*puVar3" * identifier) = (binary_expression "*puVar3 & 0xfe" (pointer_expression "*puVar3" * identifier) & number_literal)) ;) (expression_statement "(db_00->init).newTnum = (int)pStmt;" (assignment_expression "(db_00->init).newTnum = (int)pStmt" (field_expression "(db_00->init).newTnum" (parenthesized_expression "(db_00->init)" ( (field_expression "db_00->init" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(int)pStmt" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sqlite3LockAndPrepare\n              (db_00,(char *)(unaff_EDI + 0x81141),0,0,pOld,(sqlite3_stmt **)0x0,\n               (char **)in_stack_ffffff84);" (call_expression "sqlite3LockAndPrepare\n              (db_00,(char *)(unaff_EDI + 0x81141),0,0,pOld,(sqlite3_stmt **)0x0,\n               (char **)in_stack_ffffff84)" identifier (argument_list "(db_00,(char *)(unaff_EDI + 0x81141),0,0,pOld,(sqlite3_stmt **)0x0,\n               (char **)in_stack_ffffff84)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x81141)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x81141)" ( (binary_expression "unaff_EDI + 0x81141" identifier + number_literal) ))) , number_literal , number_literal , identifier , (cast_expression "(sqlite3_stmt **)0x0" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(char **)in_stack_ffffff84" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) ))) ;) (expression_statement "iVar12 = db_00->errCode;" (assignment_expression "iVar12 = db_00->errCode" identifier = (field_expression "db_00->errCode" identifier -> field_identifier)) ;) (expression_statement "(db_00->init).iDb = uVar5;" (assignment_expression "(db_00->init).iDb = uVar5" (field_expression "(db_00->init).iDb" (parenthesized_expression "(db_00->init)" ( (field_expression "db_00->init" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if ((iVar12 != 0) && (((db_00->init).field_0x6 & 1) == 0)) {\n      initData.rc = iVar12;\n      if (iVar12 == 7) {\n        uVar6._0_1_ = db_00->temp_store;\n        uVar6._1_1_ = db_00->mallocFailed;\n        uVar6._2_1_ = db_00->bBenignMalloc;\n        uVar6._3_1_ = db_00->dfltLockMode;\n        if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }\n      }\n      else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }\n    }" if (parenthesized_expression "((iVar12 != 0) && (((db_00->init).field_0x6 & 1) == 0))" ( (binary_expression "(iVar12 != 0) && (((db_00->init).field_0x6 & 1) == 0)" (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(((db_00->init).field_0x6 & 1) == 0)" ( (binary_expression "((db_00->init).field_0x6 & 1) == 0" (parenthesized_expression "((db_00->init).field_0x6 & 1)" ( (binary_expression "(db_00->init).field_0x6 & 1" (field_expression "(db_00->init).field_0x6" (parenthesized_expression "(db_00->init)" ( (field_expression "db_00->init" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      initData.rc = iVar12;\n      if (iVar12 == 7) {\n        uVar6._0_1_ = db_00->temp_store;\n        uVar6._1_1_ = db_00->mallocFailed;\n        uVar6._2_1_ = db_00->bBenignMalloc;\n        uVar6._3_1_ = db_00->dfltLockMode;\n        if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }\n      }\n      else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }\n    }" { (expression_statement "initData.rc = iVar12;" (assignment_expression "initData.rc = iVar12" (field_expression "initData.rc" identifier . field_identifier) = identifier) ;) (if_statement "if (iVar12 == 7) {\n        uVar6._0_1_ = db_00->temp_store;\n        uVar6._1_1_ = db_00->mallocFailed;\n        uVar6._2_1_ = db_00->bBenignMalloc;\n        uVar6._3_1_ = db_00->dfltLockMode;\n        if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }\n      }\n      else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }" if (parenthesized_expression "(iVar12 == 7)" ( (binary_expression "iVar12 == 7" identifier == number_literal) )) (compound_statement "{\n        uVar6._0_1_ = db_00->temp_store;\n        uVar6._1_1_ = db_00->mallocFailed;\n        uVar6._2_1_ = db_00->bBenignMalloc;\n        uVar6._3_1_ = db_00->dfltLockMode;\n        if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }\n      }" { (expression_statement "uVar6._0_1_ = db_00->temp_store;" (assignment_expression "uVar6._0_1_ = db_00->temp_store" (field_expression "uVar6._0_1_" identifier . field_identifier) = (field_expression "db_00->temp_store" identifier -> field_identifier)) ;) (expression_statement "uVar6._1_1_ = db_00->mallocFailed;" (assignment_expression "uVar6._1_1_ = db_00->mallocFailed" (field_expression "uVar6._1_1_" identifier . field_identifier) = (field_expression "db_00->mallocFailed" identifier -> field_identifier)) ;) (expression_statement "uVar6._2_1_ = db_00->bBenignMalloc;" (assignment_expression "uVar6._2_1_ = db_00->bBenignMalloc" (field_expression "uVar6._2_1_" identifier . field_identifier) = (field_expression "db_00->bBenignMalloc" identifier -> field_identifier)) ;) (expression_statement "uVar6._3_1_ = db_00->dfltLockMode;" (assignment_expression "uVar6._3_1_ = db_00->dfltLockMode" (field_expression "uVar6._3_1_" identifier . field_identifier) = (field_expression "db_00->dfltLockMode" identifier -> field_identifier)) ;) (if_statement "if ((uVar6 & 0xffff00) == 0) {\n          sqlite3OomFault(db_00);\n        }" if (parenthesized_expression "((uVar6 & 0xffff00) == 0)" ( (binary_expression "(uVar6 & 0xffff00) == 0" (parenthesized_expression "(uVar6 & 0xffff00)" ( (binary_expression "uVar6 & 0xffff00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          sqlite3OomFault(db_00);\n        }" { (expression_statement "sqlite3OomFault(db_00);" (call_expression "sqlite3OomFault(db_00)" identifier (argument_list "(db_00)" ( identifier ))) ;) })) }) (else_clause "else if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }" else (if_statement "if ((iVar12 != 9) && ((char)iVar12 != '\x06')) {\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }" if (parenthesized_expression "((iVar12 != 9) && ((char)iVar12 != '\x06'))" ( (binary_expression "(iVar12 != 9) && ((char)iVar12 != '\x06')" (parenthesized_expression "(iVar12 != 9)" ( (binary_expression "iVar12 != 9" identifier != number_literal) )) && (parenthesized_expression "((char)iVar12 != '\x06')" ( (binary_expression "(char)iVar12 != '\x06'" (cast_expression "(char)iVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x06'" ' escape_sequence ')) ))) )) (compound_statement "{\n        pData = db_00;\n        sqlite3_errmsg(db_00);\n        corruptSchema((InitData *)pData,pcVar13,(char *)pOld);\n      }" { (expression_statement "pData = db_00;" (assignment_expression "pData = db_00" identifier = identifier) ;) (expression_statement "sqlite3_errmsg(db_00);" (call_expression "sqlite3_errmsg(db_00)" identifier (argument_list "(db_00)" ( identifier ))) ;) (expression_statement "corruptSchema((InitData *)pData,pcVar13,(char *)pOld);" (call_expression "corruptSchema((InitData *)pData,pcVar13,(char *)pOld)" identifier (argument_list "((InitData *)pData,pcVar13,(char *)pOld)" ( (cast_expression "(InitData *)pData" ( (type_descriptor "InitData *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(char *)pOld" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })))) })) (expression_statement "sqlite3_finalize(pStmt);" (call_expression "sqlite3_finalize(pStmt)" identifier (argument_list "(pStmt)" ( identifier ))) ;) (expression_statement "iVar12 = extraout_EDX_01;" (assignment_expression "iVar12 = extraout_EDX_01" identifier = identifier) ;) (expression_statement "iVar16 = initData.rc;" (assignment_expression "iVar16 = initData.rc" identifier = (field_expression "initData.rc" identifier . field_identifier)) ;) }) (else_clause "else {\nLAB_000e9efd:\n    initData.iDb = (int)((ulonglong)lVar9 >> 0x20);\n    initData.db = (sqlite3 *)lVar9;\n    corruptSchema((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20);\n    iVar12 = extraout_EDX;\n    iVar16 = initData.rc;\n  }" else (compound_statement "{\nLAB_000e9efd:\n    initData.iDb = (int)((ulonglong)lVar9 >> 0x20);\n    initData.db = (sqlite3 *)lVar9;\n    corruptSchema((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20);\n    iVar12 = extraout_EDX;\n    iVar16 = initData.rc;\n  }" { (labeled_statement "LAB_000e9efd:\n    initData.iDb = (int)((ulonglong)lVar9 >> 0x20);" statement_identifier : (expression_statement "initData.iDb = (int)((ulonglong)lVar9 >> 0x20);" (assignment_expression "initData.iDb = (int)((ulonglong)lVar9 >> 0x20)" (field_expression "initData.iDb" identifier . field_identifier) = (cast_expression "(int)((ulonglong)lVar9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar9 >> 0x20)" ( (binary_expression "(ulonglong)lVar9 >> 0x20" (cast_expression "(ulonglong)lVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "initData.db = (sqlite3 *)lVar9;" (assignment_expression "initData.db = (sqlite3 *)lVar9" (field_expression "initData.db" identifier . field_identifier) = (cast_expression "(sqlite3 *)lVar9" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "corruptSchema((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20);" (call_expression "corruptSchema((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20)" identifier (argument_list "((InitData *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20)" ( (cast_expression "(InitData *)in_stack_ffffff84" ( (type_descriptor "InitData *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(char *)piVar20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar12 = extraout_EDX;" (assignment_expression "iVar12 = extraout_EDX" identifier = identifier) ;) (expression_statement "iVar16 = initData.rc;" (assignment_expression "iVar16 = initData.rc" identifier = (field_expression "initData.rc" identifier . field_identifier)) ;) }))) (expression_statement "piVar25 = piVar20;" (assignment_expression "piVar25 = piVar20" identifier = identifier) ;) (expression_statement "initData.rc = iVar16;" (assignment_expression "initData.rc = iVar16" (field_expression "initData.rc" identifier . field_identifier) = identifier) ;) (if_statement "if (iVar16 != 0) goto LAB_000ea327;" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ea327;" goto statement_identifier ;)) (expression_statement "ppcVar10 = &db_00->aDb->zDbSName;" (assignment_expression "ppcVar10 = &db_00->aDb->zDbSName" identifier = (pointer_expression "&db_00->aDb->zDbSName" & (field_expression "db_00->aDb->zDbSName" (field_expression "db_00->aDb" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) (if_statement "if (pBVar14 == (Btree *)0x0) {\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }" if (parenthesized_expression "(pBVar14 == (Btree *)0x0)" ( (binary_expression "pBVar14 == (Btree *)0x0" identifier == (cast_expression "(Btree *)0x0" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }" { (expression_statement "puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;" (assignment_expression "puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags" identifier = (pointer_expression "&(db_00->aDb[1].pSchema)->schemaFlags" & (field_expression "(db_00->aDb[1].pSchema)->schemaFlags" (parenthesized_expression "(db_00->aDb[1].pSchema)" ( (field_expression "db_00->aDb[1].pSchema" (subscript_expression "db_00->aDb[1]" (field_expression "db_00->aDb" identifier -> field_identifier) [ number_literal ]) . field_identifier) )) -> field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (goto_statement "goto LAB_000ea236;" goto statement_identifier ;) })) (expression_statement "piVar15 = piVar20;" (assignment_expression "piVar15 = piVar20" identifier = identifier) ;) (expression_statement "iVar24 = iVar16;" (assignment_expression "iVar24 = iVar16" identifier = identifier) ;) (if_statement "if (pBVar14->sharable != '\0') {\n    sqlite3BtreeEnter(pBVar14);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    piVar15 = extraout_ECX;\n    iVar12 = extraout_EDX_00;\n    iVar24 = iVar16;\n  }" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    sqlite3BtreeEnter(pBVar14);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    piVar15 = extraout_ECX;\n    iVar12 = extraout_EDX_00;\n    iVar24 = iVar16;\n  }" { (expression_statement "sqlite3BtreeEnter(pBVar14);" (call_expression "sqlite3BtreeEnter(pBVar14)" identifier (argument_list "(pBVar14)" ( identifier ))) ;) (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar15 = extraout_ECX;" (assignment_expression "piVar15 = extraout_ECX" identifier = identifier) ;) (expression_statement "iVar12 = extraout_EDX_00;" (assignment_expression "iVar12 = extraout_EDX_00" identifier = identifier) ;) (expression_statement "iVar24 = iVar16;" (assignment_expression "iVar24 = iVar16" identifier = identifier) ;) })) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (if_statement "if (pBVar14->inTrans == '\0') {\n    iVar16 = sqlite3BtreeBeginTrans(pBVar14,iVar12,piVar15);\n    if (iVar16 == 0) {\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      bVar8 = true;\n      uVar5 = pBVar14->sharable;\n      pBVar19 = pBVar14->pBt;\n      goto joined_r0x000ea4e3;\n    }\n    pcVar13 = sqlite3ErrStr(iVar16);\n    sqlite3SetString(pz,db_00,pcVar13);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    uVar5 = pBVar14->sharable;\n    pBVar19 = pBVar14->pBt;\njoined_r0x000ea4e3:\n    if (uVar5 == '\0') {\n      pBVar18 = pBVar14->pBt;\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    }\n    else {\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\nLAB_000ea0bd:\n    if ((db_00->flags & 0x2000000) == 0) {\n      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];\n      if (meta[4] == 0) goto LAB_000ea449;\n      if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }\n      bVar17 = db_00->enc;\n      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;\n      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));\n      iVar16 = 1;\nLAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    else {\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }\n    if (bVar8) {\n      sqlite3BtreeCommit(pBVar14);\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 == 0) {\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\n    if (iVar16 == 0) goto LAB_000ea236;\n  }" if (parenthesized_expression "(pBVar14->inTrans == '\0')" ( (binary_expression "pBVar14->inTrans == '\0'" (field_expression "pBVar14->inTrans" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar16 = sqlite3BtreeBeginTrans(pBVar14,iVar12,piVar15);\n    if (iVar16 == 0) {\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      bVar8 = true;\n      uVar5 = pBVar14->sharable;\n      pBVar19 = pBVar14->pBt;\n      goto joined_r0x000ea4e3;\n    }\n    pcVar13 = sqlite3ErrStr(iVar16);\n    sqlite3SetString(pz,db_00,pcVar13);\n    pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }" { (expression_statement "iVar16 = sqlite3BtreeBeginTrans(pBVar14,iVar12,piVar15);" (assignment_expression "iVar16 = sqlite3BtreeBeginTrans(pBVar14,iVar12,piVar15)" identifier = (call_expression "sqlite3BtreeBeginTrans(pBVar14,iVar12,piVar15)" identifier (argument_list "(pBVar14,iVar12,piVar15)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar16 == 0) {\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      bVar8 = true;\n      uVar5 = pBVar14->sharable;\n      pBVar19 = pBVar14->pBt;\n      goto joined_r0x000ea4e3;\n    }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      bVar8 = true;\n      uVar5 = pBVar14->sharable;\n      pBVar19 = pBVar14->pBt;\n      goto joined_r0x000ea4e3;\n    }" { (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) (expression_statement "uVar5 = pBVar14->sharable;" (assignment_expression "uVar5 = pBVar14->sharable" identifier = (field_expression "pBVar14->sharable" identifier -> field_identifier)) ;) (expression_statement "pBVar19 = pBVar14->pBt;" (assignment_expression "pBVar19 = pBVar14->pBt" identifier = (field_expression "pBVar14->pBt" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x000ea4e3;" goto statement_identifier ;) })) (expression_statement "pcVar13 = sqlite3ErrStr(iVar16);" (assignment_expression "pcVar13 = sqlite3ErrStr(iVar16)" identifier = (call_expression "sqlite3ErrStr(iVar16)" identifier (argument_list "(iVar16)" ( identifier )))) ;) (expression_statement "sqlite3SetString(pz,db_00,pcVar13);" (call_expression "sqlite3SetString(pz,db_00,pcVar13)" identifier (argument_list "(pz,db_00,pcVar13)" ( identifier , identifier , identifier ))) ;) (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) (if_statement "if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }" { (expression_statement "piVar20 = &pBVar14->wantToLock;" (assignment_expression "piVar20 = &pBVar14->wantToLock" identifier = (pointer_expression "&pBVar14->wantToLock" & (field_expression "pBVar14->wantToLock" identifier -> field_identifier))) ;) (expression_statement "*piVar20 = *piVar20 + -1;" (assignment_expression "*piVar20 = *piVar20 + -1" (pointer_expression "*piVar20" * identifier) = (binary_expression "*piVar20 + -1" (pointer_expression "*piVar20" * identifier) + number_literal)) ;) (if_statement "if (*piVar20 != 0) goto LAB_000ea327;" if (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) (goto_statement "goto LAB_000ea327;" goto statement_identifier ;)) (goto_statement "goto LAB_000ea658;" goto statement_identifier ;) })) }) (else_clause "else {\n    uVar5 = pBVar14->sharable;\n    pBVar19 = pBVar14->pBt;\njoined_r0x000ea4e3:\n    if (uVar5 == '\0') {\n      pBVar18 = pBVar14->pBt;\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    }\n    else {\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\nLAB_000ea0bd:\n    if ((db_00->flags & 0x2000000) == 0) {\n      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];\n      if (meta[4] == 0) goto LAB_000ea449;\n      if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }\n      bVar17 = db_00->enc;\n      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;\n      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));\n      iVar16 = 1;\nLAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    else {\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }\n    if (bVar8) {\n      sqlite3BtreeCommit(pBVar14);\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 == 0) {\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\n    if (iVar16 == 0) goto LAB_000ea236;\n  }" else (compound_statement "{\n    uVar5 = pBVar14->sharable;\n    pBVar19 = pBVar14->pBt;\njoined_r0x000ea4e3:\n    if (uVar5 == '\0') {\n      pBVar18 = pBVar14->pBt;\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    }\n    else {\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\nLAB_000ea0bd:\n    if ((db_00->flags & 0x2000000) == 0) {\n      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];\n      if (meta[4] == 0) goto LAB_000ea449;\n      if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }\n      bVar17 = db_00->enc;\n      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;\n      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));\n      iVar16 = 1;\nLAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    else {\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }\n    if (bVar8) {\n      sqlite3BtreeCommit(pBVar14);\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 == 0) {\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }\n    if (iVar16 == 0) goto LAB_000ea236;\n  }" { (expression_statement "uVar5 = pBVar14->sharable;" (assignment_expression "uVar5 = pBVar14->sharable" identifier = (field_expression "pBVar14->sharable" identifier -> field_identifier)) ;) (expression_statement "pBVar19 = pBVar14->pBt;" (assignment_expression "pBVar19 = pBVar14->pBt" identifier = (field_expression "pBVar14->pBt" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x000ea4e3:\n    if (uVar5 == '\0') {\n      pBVar18 = pBVar14->pBt;\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    }\n    else {\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }" statement_identifier : (if_statement "if (uVar5 == '\0') {\n      pBVar18 = pBVar14->pBt;\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    }\n    else {\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }" if (parenthesized_expression "(uVar5 == '\0')" ( (binary_expression "uVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pBVar18 = pBVar14->pBt;\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n      meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n      meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      if (pBVar14->sharable == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n      meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    }" { (expression_statement "pBVar18 = pBVar14->pBt;" (assignment_expression "pBVar18 = pBVar14->pBt" identifier = (field_expression "pBVar14->pBt" identifier -> field_identifier)) ;) (expression_statement "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);" (assignment_expression "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28)" identifier = (pointer_expression "*(uint *)(pBVar19->pPage1->aData + 0x28)" * (cast_expression "(uint *)(pBVar19->pPage1->aData + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar19->pPage1->aData + 0x28)" ( (binary_expression "pBVar19->pPage1->aData + 0x28" (field_expression "pBVar19->pPage1->aData" (field_expression "pBVar19->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[0]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (if_statement "if (pBVar14->sharable == '\0') goto LAB_000ea505;" if (parenthesized_expression "(pBVar14->sharable == '\0')" ( (binary_expression "pBVar14->sharable == '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea505;" goto statement_identifier ;)) (labeled_statement "LAB_000e9f97:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;" statement_identifier : (expression_statement "pBVar14->wantToLock = pBVar14->wantToLock + 1;" (assignment_expression "pBVar14->wantToLock = pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) = (binary_expression "pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) + number_literal)) ;)) (if_statement "if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" if (parenthesized_expression "(pBVar14->locked == '\0')" ( (binary_expression "pBVar14->locked == '\0'" (field_expression "pBVar14->locked" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9fc9;\n      }" { (expression_statement "btreeLockCarefully(in_stack_ffffff84);" (call_expression "btreeLockCarefully(in_stack_ffffff84)" identifier (argument_list "(in_stack_ffffff84)" ( identifier ))) ;) (expression_statement "uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);" (assignment_expression "uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c)" identifier = (pointer_expression "*(uint *)(pBVar18->pPage1->aData + 0x2c)" * (cast_expression "(uint *)(pBVar18->pPage1->aData + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar18->pPage1->aData + 0x2c)" ( (binary_expression "pBVar18->pPage1->aData + 0x2c" (field_expression "pBVar18->pPage1->aData" (field_expression "pBVar18->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[1]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (if_statement "if (pBVar14->sharable != '\0') goto LAB_000e9fc9;" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9fc9;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" else (compound_statement "{\n        uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n        meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" { (expression_statement "uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);" (assignment_expression "uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c)" identifier = (pointer_expression "*(uint *)(pBVar18->pPage1->aData + 0x2c)" * (cast_expression "(uint *)(pBVar18->pPage1->aData + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar18->pPage1->aData + 0x2c)" ( (binary_expression "pBVar18->pPage1->aData + 0x2c" (field_expression "pBVar18->pPage1->aData" (field_expression "pBVar18->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[1]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000e9fc9:\n        piVar15 = &pBVar14->wantToLock;" statement_identifier : (expression_statement "piVar15 = &pBVar14->wantToLock;" (assignment_expression "piVar15 = &pBVar14->wantToLock" identifier = (pointer_expression "&pBVar14->wantToLock" & (field_expression "pBVar14->wantToLock" identifier -> field_identifier))) ;)) (expression_statement "*piVar15 = *piVar15 + -1;" (assignment_expression "*piVar15 = *piVar15 + -1" (pointer_expression "*piVar15" * identifier) = (binary_expression "*piVar15 + -1" (pointer_expression "*piVar15" * identifier) + number_literal)) ;) (if_statement "if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }" if (parenthesized_expression "(*piVar15 == 0)" ( (binary_expression "*piVar15 == 0" (pointer_expression "*piVar15" * identifier) == number_literal) )) (compound_statement "{\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }" { (expression_statement "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);" (call_expression "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" identifier (argument_list "((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" ( (cast_expression "(Btree *)pBVar14->pBt" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pBVar14->pBt" identifier -> field_identifier)) , (cast_expression "(Btree *)&pBVar14->locked" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar14->locked" & (field_expression "pBVar14->locked" identifier -> field_identifier))) ))) ;) })) }))) (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) (expression_statement "pBVar19 = pBVar14->pBt;" (assignment_expression "pBVar19 = pBVar14->pBt" identifier = (field_expression "pBVar14->pBt" identifier -> field_identifier)) ;) (if_statement "if (pBVar14->sharable != '\0') goto LAB_000e9fe3;" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9fe3;" goto statement_identifier ;)) (labeled_statement "LAB_000ea521:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);" statement_identifier : (expression_statement "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);" (assignment_expression "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30)" identifier = (pointer_expression "*(uint *)(pBVar19->pPage1->aData + 0x30)" * (cast_expression "(uint *)(pBVar19->pPage1->aData + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar19->pPage1->aData + 0x30)" ( (binary_expression "pBVar19->pPage1->aData + 0x30" (field_expression "pBVar19->pPage1->aData" (field_expression "pBVar19->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;)) (expression_statement "meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[2]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (if_statement "if (pBVar14->sharable == '\0') goto LAB_000ea53d;" if (parenthesized_expression "(pBVar14->sharable == '\0')" ( (binary_expression "pBVar14->sharable == '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea53d;" goto statement_identifier ;)) (labeled_statement "LAB_000ea031:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;" statement_identifier : (expression_statement "pBVar14->wantToLock = pBVar14->wantToLock + 1;" (assignment_expression "pBVar14->wantToLock = pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) = (binary_expression "pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) + number_literal)) ;)) (if_statement "if ((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')) {\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" if (parenthesized_expression "((pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0'))" ( (binary_expression "(pBVar14->locked != '\0') ||\n         (btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')" (parenthesized_expression "(pBVar14->locked != '\0')" ( (binary_expression "pBVar14->locked != '\0'" (field_expression "pBVar14->locked" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0')" ( (comma_expression "btreeLockCarefully(in_stack_ffffff84), pBVar14->sharable != '\0'" (call_expression "btreeLockCarefully(in_stack_ffffff84)" identifier (argument_list "(in_stack_ffffff84)" ( identifier ))) , (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" { (expression_statement "piVar15 = &pBVar14->wantToLock;" (assignment_expression "piVar15 = &pBVar14->wantToLock" identifier = (pointer_expression "&pBVar14->wantToLock" & (field_expression "pBVar14->wantToLock" identifier -> field_identifier))) ;) (expression_statement "*piVar15 = *piVar15 + -1;" (assignment_expression "*piVar15 = *piVar15 + -1" (pointer_expression "*piVar15" * identifier) = (binary_expression "*piVar15 + -1" (pointer_expression "*piVar15" * identifier) + number_literal)) ;) (if_statement "if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }" if (parenthesized_expression "(*piVar15 == 0)" ( (binary_expression "*piVar15 == 0" (pointer_expression "*piVar15" * identifier) == number_literal) )) (compound_statement "{\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }" { (expression_statement "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);" (call_expression "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" identifier (argument_list "((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" ( (cast_expression "(Btree *)pBVar14->pBt" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pBVar14->pBt" identifier -> field_identifier)) , (cast_expression "(Btree *)&pBVar14->locked" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar14->locked" & (field_expression "pBVar14->locked" identifier -> field_identifier))) ))) ;) })) })) (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) (expression_statement "pBVar19 = pBVar14->pBt;" (assignment_expression "pBVar19 = pBVar14->pBt" identifier = (field_expression "pBVar14->pBt" identifier -> field_identifier)) ;) (if_statement "if (pBVar14->sharable != '\0') goto LAB_000ea07f;" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea07f;" goto statement_identifier ;)) (labeled_statement "LAB_000ea559:\n      uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);" statement_identifier : (expression_statement "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);" (assignment_expression "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38)" identifier = (pointer_expression "*(uint *)(pBVar19->pPage1->aData + 0x38)" * (cast_expression "(uint *)(pBVar19->pPage1->aData + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar19->pPage1->aData + 0x38)" ( (binary_expression "pBVar19->pPage1->aData + 0x38" (field_expression "pBVar19->pPage1->aData" (field_expression "pBVar19->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;)) (expression_statement "meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[4]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) }) (else_clause "else {\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }" else (compound_statement "{\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      pBVar18 = pBVar14->pBt;\n      if (pBVar14->sharable != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);\n      meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      if (pBVar14->sharable != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      pBVar19 = pBVar14->pBt;\n      if (pBVar14->sharable == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;\n      if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }\n      piVar15 = &pBVar14->wantToLock;\n      *piVar15 = *piVar15 + -1;\n      if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }" { (expression_statement "pBVar14->wantToLock = pBVar14->wantToLock + 1;" (assignment_expression "pBVar14->wantToLock = pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) = (binary_expression "pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" if (parenthesized_expression "(pBVar14->locked == '\0')" ( (binary_expression "pBVar14->locked == '\0'" (field_expression "pBVar14->locked" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000e9f7d;\n      }" { (expression_statement "btreeLockCarefully(in_stack_ffffff84);" (call_expression "btreeLockCarefully(in_stack_ffffff84)" identifier (argument_list "(in_stack_ffffff84)" ( identifier ))) ;) (expression_statement "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);" (assignment_expression "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28)" identifier = (pointer_expression "*(uint *)(pBVar19->pPage1->aData + 0x28)" * (cast_expression "(uint *)(pBVar19->pPage1->aData + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar19->pPage1->aData + 0x28)" ( (binary_expression "pBVar19->pPage1->aData + 0x28" (field_expression "pBVar19->pPage1->aData" (field_expression "pBVar19->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[0]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (if_statement "if (pBVar14->sharable != '\0') goto LAB_000e9f7d;" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9f7d;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" else (compound_statement "{\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);\n        meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" { (expression_statement "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28);" (assignment_expression "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x28)" identifier = (pointer_expression "*(uint *)(pBVar19->pPage1->aData + 0x28)" * (cast_expression "(uint *)(pBVar19->pPage1->aData + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar19->pPage1->aData + 0x28)" ( (binary_expression "pBVar19->pPage1->aData + 0x28" (field_expression "pBVar19->pPage1->aData" (field_expression "pBVar19->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[0] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[0]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000e9f7d:\n        piVar15 = &pBVar14->wantToLock;" statement_identifier : (expression_statement "piVar15 = &pBVar14->wantToLock;" (assignment_expression "piVar15 = &pBVar14->wantToLock" identifier = (pointer_expression "&pBVar14->wantToLock" & (field_expression "pBVar14->wantToLock" identifier -> field_identifier))) ;)) (expression_statement "*piVar15 = *piVar15 + -1;" (assignment_expression "*piVar15 = *piVar15 + -1" (pointer_expression "*piVar15" * identifier) = (binary_expression "*piVar15 + -1" (pointer_expression "*piVar15" * identifier) + number_literal)) ;) (if_statement "if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }" if (parenthesized_expression "(*piVar15 == 0)" ( (binary_expression "*piVar15 == 0" (pointer_expression "*piVar15" * identifier) == number_literal) )) (compound_statement "{\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }" { (expression_statement "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);" (call_expression "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" identifier (argument_list "((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" ( (cast_expression "(Btree *)pBVar14->pBt" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pBVar14->pBt" identifier -> field_identifier)) , (cast_expression "(Btree *)&pBVar14->locked" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar14->locked" & (field_expression "pBVar14->locked" identifier -> field_identifier))) ))) ;) })) }))) (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) (expression_statement "pBVar18 = pBVar14->pBt;" (assignment_expression "pBVar18 = pBVar14->pBt" identifier = (field_expression "pBVar14->pBt" identifier -> field_identifier)) ;) (if_statement "if (pBVar14->sharable != '\0') goto LAB_000e9f97;" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9f97;" goto statement_identifier ;)) (labeled_statement "LAB_000ea505:\n      uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);" statement_identifier : (expression_statement "uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c);" (assignment_expression "uVar6 = *(uint *)(pBVar18->pPage1->aData + 0x2c)" identifier = (pointer_expression "*(uint *)(pBVar18->pPage1->aData + 0x2c)" * (cast_expression "(uint *)(pBVar18->pPage1->aData + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar18->pPage1->aData + 0x2c)" ( (binary_expression "pBVar18->pPage1->aData + 0x2c" (field_expression "pBVar18->pPage1->aData" (field_expression "pBVar18->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;)) (expression_statement "meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[1]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (expression_statement "pBVar19 = pBVar14->pBt;" (assignment_expression "pBVar19 = pBVar14->pBt" identifier = (field_expression "pBVar14->pBt" identifier -> field_identifier)) ;) (if_statement "if (pBVar14->sharable == '\0') goto LAB_000ea521;" if (parenthesized_expression "(pBVar14->sharable == '\0')" ( (binary_expression "pBVar14->sharable == '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea521;" goto statement_identifier ;)) (labeled_statement "LAB_000e9fe3:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;" statement_identifier : (expression_statement "pBVar14->wantToLock = pBVar14->wantToLock + 1;" (assignment_expression "pBVar14->wantToLock = pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) = (binary_expression "pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) + number_literal)) ;)) (if_statement "if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" if (parenthesized_expression "(pBVar14->locked == '\0')" ( (binary_expression "pBVar14->locked == '\0'" (field_expression "pBVar14->locked" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable != '\0') goto LAB_000ea017;\n      }" { (expression_statement "btreeLockCarefully(in_stack_ffffff84);" (call_expression "btreeLockCarefully(in_stack_ffffff84)" identifier (argument_list "(in_stack_ffffff84)" ( identifier ))) ;) (expression_statement "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);" (assignment_expression "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30)" identifier = (pointer_expression "*(uint *)(pBVar19->pPage1->aData + 0x30)" * (cast_expression "(uint *)(pBVar19->pPage1->aData + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar19->pPage1->aData + 0x30)" ( (binary_expression "pBVar19->pPage1->aData + 0x30" (field_expression "pBVar19->pPage1->aData" (field_expression "pBVar19->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[2]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (if_statement "if (pBVar14->sharable != '\0') goto LAB_000ea017;" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea017;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" else (compound_statement "{\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);\n        meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\nLAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;\n        *piVar15 = *piVar15 + -1;\n        if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }\n      }" { (expression_statement "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30);" (assignment_expression "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x30)" identifier = (pointer_expression "*(uint *)(pBVar19->pPage1->aData + 0x30)" * (cast_expression "(uint *)(pBVar19->pPage1->aData + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar19->pPage1->aData + 0x30)" ( (binary_expression "pBVar19->pPage1->aData + 0x30" (field_expression "pBVar19->pPage1->aData" (field_expression "pBVar19->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[2] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[2]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000ea017:\n        piVar15 = &pBVar14->wantToLock;" statement_identifier : (expression_statement "piVar15 = &pBVar14->wantToLock;" (assignment_expression "piVar15 = &pBVar14->wantToLock" identifier = (pointer_expression "&pBVar14->wantToLock" & (field_expression "pBVar14->wantToLock" identifier -> field_identifier))) ;)) (expression_statement "*piVar15 = *piVar15 + -1;" (assignment_expression "*piVar15 = *piVar15 + -1" (pointer_expression "*piVar15" * identifier) = (binary_expression "*piVar15 + -1" (pointer_expression "*piVar15" * identifier) + number_literal)) ;) (if_statement "if (*piVar15 == 0) {\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }" if (parenthesized_expression "(*piVar15 == 0)" ( (binary_expression "*piVar15 == 0" (pointer_expression "*piVar15" * identifier) == number_literal) )) (compound_statement "{\n          unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n        }" { (expression_statement "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);" (call_expression "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" identifier (argument_list "((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" ( (cast_expression "(Btree *)pBVar14->pBt" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pBVar14->pBt" identifier -> field_identifier)) , (cast_expression "(Btree *)&pBVar14->locked" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar14->locked" & (field_expression "pBVar14->locked" identifier -> field_identifier))) ))) ;) })) }))) (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) (if_statement "if (pBVar14->sharable != '\0') goto LAB_000ea031;" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea031;" goto statement_identifier ;)) (labeled_statement "LAB_000ea53d:\n      pBVar19 = pBVar14->pBt;" statement_identifier : (expression_statement "pBVar19 = pBVar14->pBt;" (assignment_expression "pBVar19 = pBVar14->pBt" identifier = (field_expression "pBVar14->pBt" identifier -> field_identifier)) ;)) (if_statement "if (pBVar14->sharable == '\0') goto LAB_000ea559;" if (parenthesized_expression "(pBVar14->sharable == '\0')" ( (binary_expression "pBVar14->sharable == '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea559;" goto statement_identifier ;)) (labeled_statement "LAB_000ea07f:\n      pBVar14->wantToLock = pBVar14->wantToLock + 1;" statement_identifier : (expression_statement "pBVar14->wantToLock = pBVar14->wantToLock + 1;" (assignment_expression "pBVar14->wantToLock = pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) = (binary_expression "pBVar14->wantToLock + 1" (field_expression "pBVar14->wantToLock" identifier -> field_identifier) + number_literal)) ;)) (if_statement "if (pBVar14->locked == '\0') {\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }" if (parenthesized_expression "(pBVar14->locked == '\0')" ( (binary_expression "pBVar14->locked == '\0'" (field_expression "pBVar14->locked" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        btreeLockCarefully(in_stack_ffffff84);\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n        if (pBVar14->sharable == '\0') goto LAB_000ea0bd;\n      }" { (expression_statement "btreeLockCarefully(in_stack_ffffff84);" (call_expression "btreeLockCarefully(in_stack_ffffff84)" identifier (argument_list "(in_stack_ffffff84)" ( identifier ))) ;) (expression_statement "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);" (assignment_expression "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38)" identifier = (pointer_expression "*(uint *)(pBVar19->pPage1->aData + 0x38)" * (cast_expression "(uint *)(pBVar19->pPage1->aData + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar19->pPage1->aData + 0x38)" ( (binary_expression "pBVar19->pPage1->aData + 0x38" (field_expression "pBVar19->pPage1->aData" (field_expression "pBVar19->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[4]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (if_statement "if (pBVar14->sharable == '\0') goto LAB_000ea0bd;" if (parenthesized_expression "(pBVar14->sharable == '\0')" ( (binary_expression "pBVar14->sharable == '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea0bd;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }" else (compound_statement "{\n        uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);\n        meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n      }" { (expression_statement "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38);" (assignment_expression "uVar6 = *(uint *)(pBVar19->pPage1->aData + 0x38)" identifier = (pointer_expression "*(uint *)(pBVar19->pPage1->aData + 0x38)" * (cast_expression "(uint *)(pBVar19->pPage1->aData + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBVar19->pPage1->aData + 0x38)" ( (binary_expression "pBVar19->pPage1->aData + 0x38" (field_expression "pBVar19->pPage1->aData" (field_expression "pBVar19->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "meta[4] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "meta[4]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) }))) (expression_statement "piVar15 = &pBVar14->wantToLock;" (assignment_expression "piVar15 = &pBVar14->wantToLock" identifier = (pointer_expression "&pBVar14->wantToLock" & (field_expression "pBVar14->wantToLock" identifier -> field_identifier))) ;) (expression_statement "*piVar15 = *piVar15 + -1;" (assignment_expression "*piVar15 = *piVar15 + -1" (pointer_expression "*piVar15" * identifier) = (binary_expression "*piVar15 + -1" (pointer_expression "*piVar15" * identifier) + number_literal)) ;) (if_statement "if (*piVar15 == 0) {\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }" if (parenthesized_expression "(*piVar15 == 0)" ( (binary_expression "*piVar15 == 0" (pointer_expression "*piVar15" * identifier) == number_literal) )) (compound_statement "{\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }" { (expression_statement "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);" (call_expression "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" identifier (argument_list "((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" ( (cast_expression "(Btree *)pBVar14->pBt" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pBVar14->pBt" identifier -> field_identifier)) , (cast_expression "(Btree *)&pBVar14->locked" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar14->locked" & (field_expression "pBVar14->locked" identifier -> field_identifier))) ))) ;) })) })))) (labeled_statement "LAB_000ea0bd:\n    if ((db_00->flags & 0x2000000) == 0) {\n      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];\n      if (meta[4] == 0) goto LAB_000ea449;\n      if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }\n      bVar17 = db_00->enc;\n      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;\n      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));\n      iVar16 = 1;\nLAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    else {\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }" statement_identifier : (if_statement "if ((db_00->flags & 0x2000000) == 0) {\n      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];\n      if (meta[4] == 0) goto LAB_000ea449;\n      if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }\n      bVar17 = db_00->enc;\n      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;\n      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));\n      iVar16 = 1;\nLAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }\n    else {\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }" if (parenthesized_expression "((db_00->flags & 0x2000000) == 0)" ( (binary_expression "(db_00->flags & 0x2000000) == 0" (parenthesized_expression "(db_00->flags & 0x2000000)" ( (binary_expression "db_00->flags & 0x2000000" (field_expression "db_00->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      **(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];\n      if (meta[4] == 0) goto LAB_000ea449;\n      if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }\n      bVar17 = db_00->enc;\n      if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;\n      sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));\n      iVar16 = 1;\nLAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }" { (expression_statement "**(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0];" (assignment_expression "**(int **)((int)piVar20 + (int)(ppcVar10 + 3)) = meta[0]" (pointer_expression "**(int **)((int)piVar20 + (int)(ppcVar10 + 3))" * (pointer_expression "*(int **)((int)piVar20 + (int)(ppcVar10 + 3))" * (cast_expression "(int **)((int)piVar20 + (int)(ppcVar10 + 3))" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 3))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 3)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 3)" ( (binary_expression "ppcVar10 + 3" identifier + number_literal) )))) ))))) = (subscript_expression "meta[0]" identifier [ number_literal ])) ;) (if_statement "if (meta[4] == 0) goto LAB_000ea449;" if (parenthesized_expression "(meta[4] == 0)" ( (binary_expression "meta[4] == 0" (subscript_expression "meta[4]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_000ea449;" goto statement_identifier ;)) (if_statement "if (iVar21 == 0) {\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar17 = (byte)(meta[4] & 3U);\n        if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }\n        db_00->enc = bVar17;\n        goto LAB_000ea0f8;\n      }" { (expression_statement "bVar17 = (byte)(meta[4] & 3U);" (assignment_expression "bVar17 = (byte)(meta[4] & 3U)" identifier = (call_expression "(byte)(meta[4] & 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(meta[4] & 3U)" ( (binary_expression "meta[4] & 3U" (subscript_expression "meta[4]" identifier [ number_literal ]) & number_literal) )))) ;) (if_statement "if ((meta[4] & 3U) == 0) {\n          bVar17 = 1;\n        }" if (parenthesized_expression "((meta[4] & 3U) == 0)" ( (binary_expression "(meta[4] & 3U) == 0" (parenthesized_expression "(meta[4] & 3U)" ( (binary_expression "meta[4] & 3U" (subscript_expression "meta[4]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar17 = 1;\n        }" { (expression_statement "bVar17 = 1;" (assignment_expression "bVar17 = 1" identifier = number_literal) ;) })) (expression_statement "db_00->enc = bVar17;" (assignment_expression "db_00->enc = bVar17" (field_expression "db_00->enc" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_000ea0f8;" goto statement_identifier ;) })) (expression_statement "bVar17 = db_00->enc;" (assignment_expression "bVar17 = db_00->enc" identifier = (field_expression "db_00->enc" identifier -> field_identifier)) ;) (if_statement "if ((uint)bVar17 == meta[4]) goto LAB_000ea0f8;" if (parenthesized_expression "((uint)bVar17 == meta[4])" ( (binary_expression "(uint)bVar17 == meta[4]" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) == (subscript_expression "meta[4]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000ea0f8;" goto statement_identifier ;)) (expression_statement "sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189));" (call_expression "sqlite3SetString(pz,db_00,(char *)(unaff_EDI + 0x81189))" identifier (argument_list "(pz,db_00,(char *)(unaff_EDI + 0x81189))" ( identifier , identifier , (cast_expression "(char *)(unaff_EDI + 0x81189)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x81189)" ( (binary_expression "unaff_EDI + 0x81189" identifier + number_literal) ))) ))) ;) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000ea20b:\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" statement_identifier : (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;)) }) (else_clause "else {\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }" else (compound_statement "{\n      meta[1] = 0;\n      meta[2] = 0;\n      **(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;\nLAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 4;\n      bVar17 = db_00->enc;\nLAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;\n      iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }\n      *(char *)(iVar12 + 0x4c) = (char)meta[1];\n      bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }\n      if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }\n      if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }\n      pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);\n      zSql = db_00->xAuth;\n      db_00->xAuth = (sqlite3_xauth)0x0;\n      iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));\n      db_00->xAuth = zSql;\n      if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n      *puVar2 = *puVar2 | 1;\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n      iVar16 = iVar24;\n    }" { (expression_statement "meta[1] = 0;" (assignment_expression "meta[1] = 0" (subscript_expression "meta[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "meta[2] = 0;" (assignment_expression "meta[2] = 0" (subscript_expression "meta[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "**(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0;" (assignment_expression "**(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3)) = 0" (pointer_expression "**(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3))" * (pointer_expression "*(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3))" * (cast_expression "(undefined4 **)((int)piVar20 + (int)(ppcVar10 + 3))" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 3))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 3)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 3)" ( (binary_expression "ppcVar10 + 3" identifier + number_literal) )))) ))))) = number_literal) ;) (labeled_statement "LAB_000ea449:\n      puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);" statement_identifier : (expression_statement "puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);" (assignment_expression "puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e)" ( (binary_expression "*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e" (pointer_expression "*(int *)((int)&db_00->aDb->pSchema + (int)piVar25)" * (cast_expression "(int *)((int)&db_00->aDb->pSchema + (int)piVar25)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&db_00->aDb->pSchema + (int)piVar25)" ( (binary_expression "(int)&db_00->aDb->pSchema + (int)piVar25" (cast_expression "(int)&db_00->aDb->pSchema" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&db_00->aDb->pSchema" & (field_expression "db_00->aDb->pSchema" (field_expression "db_00->aDb" identifier -> field_identifier) -> field_identifier))) + (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) + number_literal) )))) ;)) (expression_statement "*puVar2 = *puVar2 | 4;" (assignment_expression "*puVar2 = *puVar2 | 4" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 | 4" (pointer_expression "*puVar2" * identifier) | number_literal)) ;) (expression_statement "bVar17 = db_00->enc;" (assignment_expression "bVar17 = db_00->enc" identifier = (field_expression "db_00->enc" identifier -> field_identifier)) ;) (labeled_statement "LAB_000ea0f8:\n      *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;" statement_identifier : (expression_statement "*(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17;" (assignment_expression "*(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d) = bVar17" (pointer_expression "*(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d)" * (cast_expression "(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d)" ( (binary_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4d" (pointer_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3))" * (cast_expression "(int *)((int)piVar20 + (int)(ppcVar10 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 3))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 3)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 3)" ( (binary_expression "ppcVar10 + 3" identifier + number_literal) )))) )))) + number_literal) )))) = identifier) ;)) (expression_statement "iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));" (assignment_expression "iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3))" identifier = (pointer_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3))" * (cast_expression "(int *)((int)piVar20 + (int)(ppcVar10 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 3))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 3)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 3)" ( (binary_expression "ppcVar10 + 3" identifier + number_literal) )))) ))))) ;) (if_statement "if (*(int *)(iVar12 + 0x50) == 0) {\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 0x50) == 0)" ( (binary_expression "*(int *)(iVar12 + 0x50) == 0" (pointer_expression "*(int *)(iVar12 + 0x50)" * (cast_expression "(int *)(iVar12 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x50)" ( (binary_expression "iVar12 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }\n        *(int *)(iVar12 + 0x50) = meta[2];\n        sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));\n        iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));\n      }" { (if_statement "if (meta[2] < 0) {\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }\n        else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }" if (parenthesized_expression "(meta[2] < 0)" ( (binary_expression "meta[2] < 0" (subscript_expression "meta[2]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          iVar16 = -meta[2];\n          bVar22 = meta[2] != -0x80000000;\n          meta[2] = 0x7fffffff;\n          if (bVar22) {\n            meta[2] = iVar16;\n          }\n        }" { (expression_statement "iVar16 = -meta[2];" (assignment_expression "iVar16 = -meta[2]" identifier = (unary_expression "-meta[2]" - (subscript_expression "meta[2]" identifier [ number_literal ]))) ;) (expression_statement "bVar22 = meta[2] != -0x80000000;" (assignment_expression "bVar22 = meta[2] != -0x80000000" identifier = (binary_expression "meta[2] != -0x80000000" (subscript_expression "meta[2]" identifier [ number_literal ]) != number_literal)) ;) (expression_statement "meta[2] = 0x7fffffff;" (assignment_expression "meta[2] = 0x7fffffff" (subscript_expression "meta[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (bVar22) {\n            meta[2] = iVar16;\n          }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n            meta[2] = iVar16;\n          }" { (expression_statement "meta[2] = iVar16;" (assignment_expression "meta[2] = iVar16" (subscript_expression "meta[2]" identifier [ number_literal ]) = identifier) ;) })) }) (else_clause "else if (meta[2] == 0) {\n          meta[2] = -2000;\n        }" else (if_statement "if (meta[2] == 0) {\n          meta[2] = -2000;\n        }" if (parenthesized_expression "(meta[2] == 0)" ( (binary_expression "meta[2] == 0" (subscript_expression "meta[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          meta[2] = -2000;\n        }" { (expression_statement "meta[2] = -2000;" (assignment_expression "meta[2] = -2000" (subscript_expression "meta[2]" identifier [ number_literal ]) = number_literal) ;) })))) (expression_statement "*(int *)(iVar12 + 0x50) = meta[2];" (assignment_expression "*(int *)(iVar12 + 0x50) = meta[2]" (pointer_expression "*(int *)(iVar12 + 0x50)" * (cast_expression "(int *)(iVar12 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x50)" ( (binary_expression "iVar12 + 0x50" identifier + number_literal) )))) = (subscript_expression "meta[2]" identifier [ number_literal ])) ;) (expression_statement "sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50));" (call_expression "sqlite3BtreeSetCacheSize\n                  (*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50))" identifier (argument_list "(*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1)),\n                   *(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50))" ( (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) )))) , (pointer_expression "*(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50)" * (cast_expression "(int *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50)" ( (binary_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x50" (pointer_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3))" * (cast_expression "(int *)((int)piVar20 + (int)(ppcVar10 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 3))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 3)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 3)" ( (binary_expression "ppcVar10 + 3" identifier + number_literal) )))) )))) + number_literal) )))) ))) ;) (expression_statement "iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3));" (assignment_expression "iVar12 = *(int *)((int)piVar20 + (int)(ppcVar10 + 3))" identifier = (pointer_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3))" * (cast_expression "(int *)((int)piVar20 + (int)(ppcVar10 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 3))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 3)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 3)" ( (binary_expression "ppcVar10 + 3" identifier + number_literal) )))) ))))) ;) })) (expression_statement "*(char *)(iVar12 + 0x4c) = (char)meta[1];" (assignment_expression "*(char *)(iVar12 + 0x4c) = (char)meta[1]" (pointer_expression "*(char *)(iVar12 + 0x4c)" * (cast_expression "(char *)(iVar12 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4c)" ( (binary_expression "iVar12 + 0x4c" identifier + number_literal) )))) = (cast_expression "(char)meta[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "meta[1]" identifier [ number_literal ]))) ;) (expression_statement "bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);" (assignment_expression "bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" * (cast_expression "(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" ( (binary_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c" (pointer_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3))" * (cast_expression "(int *)((int)piVar20 + (int)(ppcVar10 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 3))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 3)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 3)" ( (binary_expression "ppcVar10 + 3" identifier + number_literal) )))) )))) + number_literal) ))))) ;) (if_statement "if (bVar17 == 0) {\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;\n        bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);\n      }" { (expression_statement "*(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1;" (assignment_expression "*(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c) = 1" (pointer_expression "*(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" * (cast_expression "(undefined1 *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" ( (binary_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c" (pointer_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3))" * (cast_expression "(int *)((int)piVar20 + (int)(ppcVar10 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 3))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 3)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 3)" ( (binary_expression "ppcVar10 + 3" identifier + number_literal) )))) )))) + number_literal) )))) = number_literal) ;) (expression_statement "bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c);" (assignment_expression "bVar17 = *(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" * (cast_expression "(byte *)(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c)" ( (binary_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3)) + 0x4c" (pointer_expression "*(int *)((int)piVar20 + (int)(ppcVar10 + 3))" * (cast_expression "(int *)((int)piVar20 + (int)(ppcVar10 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 3))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 3)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 3)" ( (binary_expression "ppcVar10 + 3" identifier + number_literal) )))) )))) + number_literal) ))))) ;) })) (if_statement "if (4 < bVar17) {\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }" if (parenthesized_expression "(4 < bVar17)" ( (binary_expression "4 < bVar17" number_literal < identifier) )) (compound_statement "{\n        if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }\n        pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));\n        iVar16 = 1;\n        *pz = pcVar13;\n        goto LAB_000ea20b;\n      }" { (if_statement "if (*pz != (char *)0x0) {\n          sqlite3DbFreeNN(db_00,*pz);\n        }" if (parenthesized_expression "(*pz != (char *)0x0)" ( (binary_expression "*pz != (char *)0x0" (pointer_expression "*pz" * identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          sqlite3DbFreeNN(db_00,*pz);\n        }" { (expression_statement "sqlite3DbFreeNN(db_00,*pz);" (call_expression "sqlite3DbFreeNN(db_00,*pz)" identifier (argument_list "(db_00,*pz)" ( identifier , (pointer_expression "*pz" * identifier) ))) ;) })) (expression_statement "pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2));" (assignment_expression "pcVar13 = sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2))" identifier = (call_expression "sqlite3DbStrDup(db_00,(char *)(unaff_EDI + 0x73cb2))" identifier (argument_list "(db_00,(char *)(unaff_EDI + 0x73cb2))" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x73cb2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x73cb2)" ( (binary_expression "unaff_EDI + 0x73cb2" identifier + number_literal) ))) )))) ;) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (expression_statement "*pz = pcVar13;" (assignment_expression "*pz = pcVar13" (pointer_expression "*pz" * identifier) = identifier) ;) (goto_statement "goto LAB_000ea20b;" goto statement_identifier ;) })) (if_statement "if ((iVar21 == 0) && (3 < meta[1])) {\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }" if (parenthesized_expression "((iVar21 == 0) && (3 < meta[1]))" ( (binary_expression "(iVar21 == 0) && (3 < meta[1])" (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) && (parenthesized_expression "(3 < meta[1])" ( (binary_expression "3 < meta[1]" number_literal < (subscript_expression "meta[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\n        *(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;\n      }" { (expression_statement "*(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd;" (assignment_expression "*(uint *)&db_00->flags = (uint)db_00->flags & 0xfffffffd" (pointer_expression "*(uint *)&db_00->flags" * (cast_expression "(uint *)&db_00->flags" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&db_00->flags" & (field_expression "db_00->flags" identifier -> field_identifier)))) = (binary_expression "(uint)db_00->flags & 0xfffffffd" (cast_expression "(uint)db_00->flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "db_00->flags" identifier -> field_identifier)) & number_literal)) ;) })) (expression_statement "pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11);" (assignment_expression "pcVar13 = sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11)" identifier = (call_expression "sqlite3MPrintf(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11)" identifier (argument_list "(db_00,(char *)(unaff_EDI + 0x811cd),\n                               *(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25),iVar11)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x811cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x811cd)" ( (binary_expression "unaff_EDI + 0x811cd" identifier + number_literal) ))) , (pointer_expression "*(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25)" * (cast_expression "(undefined4 *)((int)&db_00->aDb->zDbSName + (int)piVar25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&db_00->aDb->zDbSName + (int)piVar25)" ( (binary_expression "(int)&db_00->aDb->zDbSName + (int)piVar25" (cast_expression "(int)&db_00->aDb->zDbSName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&db_00->aDb->zDbSName" & (field_expression "db_00->aDb->zDbSName" (field_expression "db_00->aDb" identifier -> field_identifier) -> field_identifier))) + (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) , identifier )))) ;) (expression_statement "zSql = db_00->xAuth;" (assignment_expression "zSql = db_00->xAuth" identifier = (field_expression "db_00->xAuth" identifier -> field_identifier)) ;) (expression_statement "db_00->xAuth = (sqlite3_xauth)0x0;" (assignment_expression "db_00->xAuth = (sqlite3_xauth)0x0" (field_expression "db_00->xAuth" identifier -> field_identifier) = (cast_expression "(sqlite3_xauth)0x0" ( (type_descriptor "sqlite3_xauth" type_identifier) ) number_literal)) ;) (expression_statement "iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9));" (assignment_expression "iVar16 = sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9))" identifier = (call_expression "sqlite3_exec((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9))" identifier (argument_list "((sqlite3 *)(unaff_EDI + 0x16af9),(char *)zSql,(sqlite3_callback)db_00,\n                            pcVar13,(char **)(unaff_EDI + 0x16af9))" ( (cast_expression "(sqlite3 *)(unaff_EDI + 0x16af9)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x16af9)" ( (binary_expression "unaff_EDI + 0x16af9" identifier + number_literal) ))) , (cast_expression "(char *)zSql" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(sqlite3_callback)db_00" ( (type_descriptor "sqlite3_callback" type_identifier) ) identifier) , identifier , (cast_expression "(char **)(unaff_EDI + 0x16af9)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EDI + 0x16af9)" ( (binary_expression "unaff_EDI + 0x16af9" identifier + number_literal) ))) )))) ;) (expression_statement "db_00->xAuth = zSql;" (assignment_expression "db_00->xAuth = zSql" (field_expression "db_00->xAuth" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar16 == 0) {\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar16 = initData.rc;\n        if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }\n        if (iVar16 != 0) goto LAB_000ea1eb;\n        sqlite3AnalysisLoad(db_00,iVar21);\n        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;\n      }" { (expression_statement "iVar16 = initData.rc;" (assignment_expression "iVar16 = initData.rc" identifier = (field_expression "initData.rc" identifier . field_identifier)) ;) (if_statement "if (pcVar13 != (char *)0x0) {\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);\n        }" { (labeled_statement "LAB_000ea1da:\n          sqlite3DbFreeNN(db_00,pcVar13);" statement_identifier : (expression_statement "sqlite3DbFreeNN(db_00,pcVar13);" (call_expression "sqlite3DbFreeNN(db_00,pcVar13)" identifier (argument_list "(db_00,pcVar13)" ( identifier , identifier ))) ;)) })) (if_statement "if (iVar16 != 0) goto LAB_000ea1eb;" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ea1eb;" goto statement_identifier ;)) (expression_statement "sqlite3AnalysisLoad(db_00,iVar21);" (call_expression "sqlite3AnalysisLoad(db_00,iVar21)" identifier (argument_list "(db_00,iVar21)" ( identifier , identifier ))) ;) (if_statement "if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;" if (parenthesized_expression "(db_00->mallocFailed != '\0')" ( (binary_expression "db_00->mallocFailed != '\0'" (field_expression "db_00->mallocFailed" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea1f1;" goto statement_identifier ;)) }) (else_clause "else {\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }" else (compound_statement "{\n        if (pcVar13 != (char *)0x0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }\n        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;\n      }" { (if_statement "if (pcVar13 != (char *)0x0) goto LAB_000ea1da;" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000ea1da;" goto statement_identifier ;)) (labeled_statement "LAB_000ea1eb:\n        if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }" statement_identifier : (if_statement "if (db_00->mallocFailed != '\0') {\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }" if (parenthesized_expression "(db_00->mallocFailed != '\0')" ( (binary_expression "db_00->mallocFailed != '\0'" (field_expression "db_00->mallocFailed" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000ea1f1:\n          iVar16 = 7;\n          sqlite3ResetAllSchemasOfConnection(db_00);\n        }" { (labeled_statement "LAB_000ea1f1:\n          iVar16 = 7;" statement_identifier : (expression_statement "iVar16 = 7;" (assignment_expression "iVar16 = 7" identifier = number_literal) ;)) (expression_statement "sqlite3ResetAllSchemasOfConnection(db_00);" (call_expression "sqlite3ResetAllSchemasOfConnection(db_00)" identifier (argument_list "(db_00)" ( identifier ))) ;) }))) (if_statement "if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;" if (parenthesized_expression "((db_00->flags & 0x8000000) == 0)" ( (binary_expression "(db_00->flags & 0x8000000) == 0" (parenthesized_expression "(db_00->flags & 0x8000000)" ( (binary_expression "db_00->flags & 0x8000000" (field_expression "db_00->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000ea20b;" goto statement_identifier ;)) }))) (expression_statement "puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);" (assignment_expression "puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e)" ( (binary_expression "*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e" (pointer_expression "*(int *)((int)&db_00->aDb->pSchema + (int)piVar25)" * (cast_expression "(int *)((int)&db_00->aDb->pSchema + (int)piVar25)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&db_00->aDb->pSchema + (int)piVar25)" ( (binary_expression "(int)&db_00->aDb->pSchema + (int)piVar25" (cast_expression "(int)&db_00->aDb->pSchema" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&db_00->aDb->pSchema" & (field_expression "db_00->aDb->pSchema" (field_expression "db_00->aDb" identifier -> field_identifier) -> field_identifier))) + (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) + number_literal) )))) ;) (expression_statement "*puVar2 = *puVar2 | 1;" (assignment_expression "*puVar2 = *puVar2 | 1" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 | 1" (pointer_expression "*puVar2" * identifier) | number_literal)) ;) (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar16 = iVar24;" (assignment_expression "iVar16 = iVar24" identifier = identifier) ;) })))) (if_statement "if (bVar8) {\n      sqlite3BtreeCommit(pBVar14);\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }" if (parenthesized_expression "(bVar8)" ( identifier )) (compound_statement "{\n      sqlite3BtreeCommit(pBVar14);\n      pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));\n    }" { (expression_statement "sqlite3BtreeCommit(pBVar14);" (call_expression "sqlite3BtreeCommit(pBVar14)" identifier (argument_list "(pBVar14)" ( identifier ))) ;) (expression_statement "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1));" (assignment_expression "pBVar14 = *(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" identifier = (pointer_expression "*(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" * (cast_expression "(Btree **)((int)piVar20 + (int)(ppcVar10 + 1))" ( (type_descriptor "Btree **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar20 + (int)(ppcVar10 + 1))" ( (binary_expression "(int)piVar20 + (int)(ppcVar10 + 1)" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(ppcVar10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppcVar10 + 1)" ( (binary_expression "ppcVar10 + 1" identifier + number_literal) )))) ))))) ;) })) (if_statement "if (pBVar14->sharable != '\0') {\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 == 0) {\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }" if (parenthesized_expression "(pBVar14->sharable != '\0')" ( (binary_expression "pBVar14->sharable != '\0'" (field_expression "pBVar14->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar20 = &pBVar14->wantToLock;\n      *piVar20 = *piVar20 + -1;\n      if (*piVar20 == 0) {\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }\n    }" { (expression_statement "piVar20 = &pBVar14->wantToLock;" (assignment_expression "piVar20 = &pBVar14->wantToLock" identifier = (pointer_expression "&pBVar14->wantToLock" & (field_expression "pBVar14->wantToLock" identifier -> field_identifier))) ;) (expression_statement "*piVar20 = *piVar20 + -1;" (assignment_expression "*piVar20 = *piVar20 + -1" (pointer_expression "*piVar20" * identifier) = (binary_expression "*piVar20 + -1" (pointer_expression "*piVar20" * identifier) + number_literal)) ;) (if_statement "if (*piVar20 == 0) {\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }" if (parenthesized_expression "(*piVar20 == 0)" ( (binary_expression "*piVar20 == 0" (pointer_expression "*piVar20" * identifier) == number_literal) )) (compound_statement "{\nLAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);\n      }" { (labeled_statement "LAB_000ea658:\n        unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);" statement_identifier : (expression_statement "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked);" (call_expression "unlockBtreeMutex((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" identifier (argument_list "((Btree *)pBVar14->pBt,(Btree *)&pBVar14->locked)" ( (cast_expression "(Btree *)pBVar14->pBt" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pBVar14->pBt" identifier -> field_identifier)) , (cast_expression "(Btree *)&pBVar14->locked" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBVar14->locked" & (field_expression "pBVar14->locked" identifier -> field_identifier))) ))) ;)) })) })) (if_statement "if (iVar16 == 0) goto LAB_000ea236;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ea236;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000ea327:\n  if (((iVar16 == 7) || (iVar16 == 0xc0a)) &&\n     (uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0)\n     ) {\n    sqlite3OomFault(db_00);\n  }" statement_identifier : (if_statement "if (((iVar16 == 7) || (iVar16 == 0xc0a)) &&\n     (uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0)\n     ) {\n    sqlite3OomFault(db_00);\n  }" if (parenthesized_expression "(((iVar16 == 7) || (iVar16 == 0xc0a)) &&\n     (uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0)\n     )" ( (binary_expression "((iVar16 == 7) || (iVar16 == 0xc0a)) &&\n     (uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0)" (parenthesized_expression "((iVar16 == 7) || (iVar16 == 0xc0a))" ( (binary_expression "(iVar16 == 7) || (iVar16 == 0xc0a)" (parenthesized_expression "(iVar16 == 7)" ( (binary_expression "iVar16 == 7" identifier == number_literal) )) || (parenthesized_expression "(iVar16 == 0xc0a)" ( (binary_expression "iVar16 == 0xc0a" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0)" ( (comma_expression "uVar7._0_1_ = db_00->temp_store, uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0" (assignment_expression "uVar7._0_1_ = db_00->temp_store" (field_expression "uVar7._0_1_" identifier . field_identifier) = (field_expression "db_00->temp_store" identifier -> field_identifier)) , (comma_expression "uVar7._1_1_ = db_00->mallocFailed,\n     uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0" (assignment_expression "uVar7._1_1_ = db_00->mallocFailed" (field_expression "uVar7._1_1_" identifier . field_identifier) = (field_expression "db_00->mallocFailed" identifier -> field_identifier)) , (comma_expression "uVar7._2_1_ = db_00->bBenignMalloc, uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0" (assignment_expression "uVar7._2_1_ = db_00->bBenignMalloc" (field_expression "uVar7._2_1_" identifier . field_identifier) = (field_expression "db_00->bBenignMalloc" identifier -> field_identifier)) , (comma_expression "uVar7._3_1_ = db_00->dfltLockMode, (uVar7 & 0xffff00) == 0" (assignment_expression "uVar7._3_1_ = db_00->dfltLockMode" (field_expression "uVar7._3_1_" identifier . field_identifier) = (field_expression "db_00->dfltLockMode" identifier -> field_identifier)) , (binary_expression "(uVar7 & 0xffff00) == 0" (parenthesized_expression "(uVar7 & 0xffff00)" ( (binary_expression "uVar7 & 0xffff00" identifier & number_literal) )) == number_literal))))) ))) )) (compound_statement "{\n    sqlite3OomFault(db_00);\n  }" { (expression_statement "sqlite3OomFault(db_00);" (call_expression "sqlite3OomFault(db_00)" identifier (argument_list "(db_00)" ( identifier ))) ;) }))) (if_statement "if (-1 < lVar23) {\n    puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n    *puVar2 = *puVar2 | 8;\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 8;\n    db_00->mDbFlags = db_00->mDbFlags & 0xfffffff7;\n  }" if (parenthesized_expression "(-1 < lVar23)" ( (binary_expression "-1 < lVar23" number_literal < identifier) )) (compound_statement "{\n    puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);\n    *puVar2 = *puVar2 | 8;\n    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;\n    *puVar1 = *puVar1 | 8;\n    db_00->mDbFlags = db_00->mDbFlags & 0xfffffff7;\n  }" { (expression_statement "puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);" (assignment_expression "puVar2 = (ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e)" ( (binary_expression "*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e" (pointer_expression "*(int *)((int)&db_00->aDb->pSchema + (int)piVar25)" * (cast_expression "(int *)((int)&db_00->aDb->pSchema + (int)piVar25)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&db_00->aDb->pSchema + (int)piVar25)" ( (binary_expression "(int)&db_00->aDb->pSchema + (int)piVar25" (cast_expression "(int)&db_00->aDb->pSchema" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&db_00->aDb->pSchema" & (field_expression "db_00->aDb->pSchema" (field_expression "db_00->aDb" identifier -> field_identifier) -> field_identifier))) + (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) + number_literal) )))) ;) (expression_statement "*puVar2 = *puVar2 | 8;" (assignment_expression "*puVar2 = *puVar2 | 8" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 | 8" (pointer_expression "*puVar2" * identifier) | number_literal)) ;) (expression_statement "puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;" (assignment_expression "puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags" identifier = (pointer_expression "&(db_00->aDb[1].pSchema)->schemaFlags" & (field_expression "(db_00->aDb[1].pSchema)->schemaFlags" (parenthesized_expression "(db_00->aDb[1].pSchema)" ( (field_expression "db_00->aDb[1].pSchema" (subscript_expression "db_00->aDb[1]" (field_expression "db_00->aDb" identifier -> field_identifier) [ number_literal ]) . field_identifier) )) -> field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "db_00->mDbFlags = db_00->mDbFlags & 0xfffffff7;" (assignment_expression "db_00->mDbFlags = db_00->mDbFlags & 0xfffffff7" (field_expression "db_00->mDbFlags" identifier -> field_identifier) = (binary_expression "db_00->mDbFlags & 0xfffffff7" (field_expression "db_00->mDbFlags" identifier -> field_identifier) & number_literal)) ;) })) (if_statement "if ((db_00->nSchemaLock == 0) && (iVar11 = db_00->nDb, 0 < iVar11)) {\n    iVar21 = 0;\n    do {\n      p = db_00->aDb[iVar21].pSchema;\n      bVar17 = (byte)p->schemaFlags;\n      while ((bVar17 & 8) == 0) {\n        iVar21 = iVar21 + 1;\n        if (iVar11 <= iVar21) goto LAB_000ea236;\n        p = db_00->aDb[iVar21].pSchema;\n        bVar17 = (byte)p->schemaFlags;\n      }\n      iVar21 = iVar21 + 1;\n      sqlite3SchemaClear(p);\n      iVar11 = db_00->nDb;\n    } while (iVar21 < iVar11);\n  }" if (parenthesized_expression "((db_00->nSchemaLock == 0) && (iVar11 = db_00->nDb, 0 < iVar11))" ( (binary_expression "(db_00->nSchemaLock == 0) && (iVar11 = db_00->nDb, 0 < iVar11)" (parenthesized_expression "(db_00->nSchemaLock == 0)" ( (binary_expression "db_00->nSchemaLock == 0" (field_expression "db_00->nSchemaLock" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(iVar11 = db_00->nDb, 0 < iVar11)" ( (comma_expression "iVar11 = db_00->nDb, 0 < iVar11" (assignment_expression "iVar11 = db_00->nDb" identifier = (field_expression "db_00->nDb" identifier -> field_identifier)) , (binary_expression "0 < iVar11" number_literal < identifier)) ))) )) (compound_statement "{\n    iVar21 = 0;\n    do {\n      p = db_00->aDb[iVar21].pSchema;\n      bVar17 = (byte)p->schemaFlags;\n      while ((bVar17 & 8) == 0) {\n        iVar21 = iVar21 + 1;\n        if (iVar11 <= iVar21) goto LAB_000ea236;\n        p = db_00->aDb[iVar21].pSchema;\n        bVar17 = (byte)p->schemaFlags;\n      }\n      iVar21 = iVar21 + 1;\n      sqlite3SchemaClear(p);\n      iVar11 = db_00->nDb;\n    } while (iVar21 < iVar11);\n  }" { (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n      p = db_00->aDb[iVar21].pSchema;\n      bVar17 = (byte)p->schemaFlags;\n      while ((bVar17 & 8) == 0) {\n        iVar21 = iVar21 + 1;\n        if (iVar11 <= iVar21) goto LAB_000ea236;\n        p = db_00->aDb[iVar21].pSchema;\n        bVar17 = (byte)p->schemaFlags;\n      }\n      iVar21 = iVar21 + 1;\n      sqlite3SchemaClear(p);\n      iVar11 = db_00->nDb;\n    } while (iVar21 < iVar11);" do (compound_statement "{\n      p = db_00->aDb[iVar21].pSchema;\n      bVar17 = (byte)p->schemaFlags;\n      while ((bVar17 & 8) == 0) {\n        iVar21 = iVar21 + 1;\n        if (iVar11 <= iVar21) goto LAB_000ea236;\n        p = db_00->aDb[iVar21].pSchema;\n        bVar17 = (byte)p->schemaFlags;\n      }\n      iVar21 = iVar21 + 1;\n      sqlite3SchemaClear(p);\n      iVar11 = db_00->nDb;\n    }" { (expression_statement "p = db_00->aDb[iVar21].pSchema;" (assignment_expression "p = db_00->aDb[iVar21].pSchema" identifier = (field_expression "db_00->aDb[iVar21].pSchema" (subscript_expression "db_00->aDb[iVar21]" (field_expression "db_00->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (expression_statement "bVar17 = (byte)p->schemaFlags;" (assignment_expression "bVar17 = (byte)p->schemaFlags" identifier = (cast_expression "(byte)p->schemaFlags" ( (type_descriptor "byte" type_identifier) ) (field_expression "p->schemaFlags" identifier -> field_identifier))) ;) (while_statement "while ((bVar17 & 8) == 0) {\n        iVar21 = iVar21 + 1;\n        if (iVar11 <= iVar21) goto LAB_000ea236;\n        p = db_00->aDb[iVar21].pSchema;\n        bVar17 = (byte)p->schemaFlags;\n      }" while (parenthesized_expression "((bVar17 & 8) == 0)" ( (binary_expression "(bVar17 & 8) == 0" (parenthesized_expression "(bVar17 & 8)" ( (binary_expression "bVar17 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar21 = iVar21 + 1;\n        if (iVar11 <= iVar21) goto LAB_000ea236;\n        p = db_00->aDb[iVar21].pSchema;\n        bVar17 = (byte)p->schemaFlags;\n      }" { (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (if_statement "if (iVar11 <= iVar21) goto LAB_000ea236;" if (parenthesized_expression "(iVar11 <= iVar21)" ( (binary_expression "iVar11 <= iVar21" identifier <= identifier) )) (goto_statement "goto LAB_000ea236;" goto statement_identifier ;)) (expression_statement "p = db_00->aDb[iVar21].pSchema;" (assignment_expression "p = db_00->aDb[iVar21].pSchema" identifier = (field_expression "db_00->aDb[iVar21].pSchema" (subscript_expression "db_00->aDb[iVar21]" (field_expression "db_00->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (expression_statement "bVar17 = (byte)p->schemaFlags;" (assignment_expression "bVar17 = (byte)p->schemaFlags" identifier = (cast_expression "(byte)p->schemaFlags" ( (type_descriptor "byte" type_identifier) ) (field_expression "p->schemaFlags" identifier -> field_identifier))) ;) })) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "sqlite3SchemaClear(p);" (call_expression "sqlite3SchemaClear(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "iVar11 = db_00->nDb;" (assignment_expression "iVar11 = db_00->nDb" identifier = (field_expression "db_00->nDb" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(iVar21 < iVar11)" ( (binary_expression "iVar21 < iVar11" identifier < identifier) )) ;) })) (labeled_statement "LAB_000ea236:\n  (db_00->init).busy = '\0';" statement_identifier : (expression_statement "(db_00->init).busy = '\0';" (assignment_expression "(db_00->init).busy = '\0'" (field_expression "(db_00->init).busy" (parenthesized_expression "(db_00->init)" ( (field_expression "db_00->init" identifier -> field_identifier) )) . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar16;\n  }" if (parenthesized_expression "(iVar4 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar4 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar16;\n  }" { (return_statement "return iVar16;" return identifier ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int FUN_000e9e50(undefined4 param_1)\n\n{\n  ushort *puVar1;\n  int *piVar2;\n  int iVar3;\n  char cVar4;\n  undefined1 uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  longlong lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *extraout_ECX;\n  byte bVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  longlong lVar19;\n  int local_78;\n  undefined1 local_70;\n  undefined4 local_50;\n  int local_4c [2];\n  int local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  \n  lVar19 = FUN_0003a401();\n  iVar18 = (int)((ulonglong)lVar19 >> 0x20);\n  iVar9 = (int)lVar19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(iVar9 + 0xa1) = 1;\n  iVar12 = unaff_EDI + 0x70515;\n  if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }\n  iVar17 = iVar18 * 0x10;\n  local_40 = 0;\n  local_3c = param_1;\n  local_38 = 1;\n  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar8 = lVar19;\n  if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }\n  local_78 = iVar10;\n  local_40 = iVar10;\n  if (iVar10 != 0) goto LAB_000ea327;\n  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;\n  iVar11 = *(int *)(iVar3 + 4);\n  if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }\n  bVar7 = false;\n  if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }\n  if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }\n  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }\nLAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }\n                    \n  FUN_00153870();\n}\n\n" (function_definition "int FUN_000e9e50(undefined4 param_1)\n\n{\n  ushort *puVar1;\n  int *piVar2;\n  int iVar3;\n  char cVar4;\n  undefined1 uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  longlong lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *extraout_ECX;\n  byte bVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  longlong lVar19;\n  int local_78;\n  undefined1 local_70;\n  undefined4 local_50;\n  int local_4c [2];\n  int local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  \n  lVar19 = FUN_0003a401();\n  iVar18 = (int)((ulonglong)lVar19 >> 0x20);\n  iVar9 = (int)lVar19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(iVar9 + 0xa1) = 1;\n  iVar12 = unaff_EDI + 0x70515;\n  if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }\n  iVar17 = iVar18 * 0x10;\n  local_40 = 0;\n  local_3c = param_1;\n  local_38 = 1;\n  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar8 = lVar19;\n  if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }\n  local_78 = iVar10;\n  local_40 = iVar10;\n  if (iVar10 != 0) goto LAB_000ea327;\n  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;\n  iVar11 = *(int *)(iVar3 + 4);\n  if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }\n  bVar7 = false;\n  if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }\n  if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }\n  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }\nLAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }\n                    \n  FUN_00153870();\n}" primitive_type (function_declarator "FUN_000e9e50(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  ushort *puVar1;\n  int *piVar2;\n  int iVar3;\n  char cVar4;\n  undefined1 uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  longlong lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *extraout_ECX;\n  byte bVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  longlong lVar19;\n  int local_78;\n  undefined1 local_70;\n  undefined4 local_50;\n  int local_4c [2];\n  int local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  \n  lVar19 = FUN_0003a401();\n  iVar18 = (int)((ulonglong)lVar19 >> 0x20);\n  iVar9 = (int)lVar19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(iVar9 + 0xa1) = 1;\n  iVar12 = unaff_EDI + 0x70515;\n  if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }\n  iVar17 = iVar18 * 0x10;\n  local_40 = 0;\n  local_3c = param_1;\n  local_38 = 1;\n  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar8 = lVar19;\n  if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }\n  local_78 = iVar10;\n  local_40 = iVar10;\n  if (iVar10 != 0) goto LAB_000ea327;\n  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;\n  iVar11 = *(int *)(iVar3 + 4);\n  if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }\n  bVar7 = false;\n  if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }\n  if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }\n  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }\nLAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }\n                    \n  FUN_00153870();\n}" { (declaration "ushort *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longlong lVar19;" type_identifier identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "undefined1 local_70;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "int local_4c [2];" primitive_type (array_declarator "local_4c [2]" identifier [ number_literal ]) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "lVar19 = FUN_0003a401();" (assignment_expression "lVar19 = FUN_0003a401()" identifier = (call_expression "FUN_0003a401()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar18 = (int)((ulonglong)lVar19 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)lVar19 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar19 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar19 >> 0x20)" ( (binary_expression "(ulonglong)lVar19 >> 0x20" (cast_expression "(ulonglong)lVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar9 = (int)lVar19;" (assignment_expression "iVar9 = (int)lVar19" identifier = (cast_expression "(int)lVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar9 + 0xa1) = 1;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa1) = 1" (pointer_expression "*(undefined1 *)(iVar9 + 0xa1)" * (cast_expression "(undefined1 *)(iVar9 + 0xa1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa1)" ( (binary_expression "iVar9 + 0xa1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar12 = unaff_EDI + 0x70515;" (assignment_expression "iVar12 = unaff_EDI + 0x70515" identifier = (binary_expression "unaff_EDI + 0x70515" identifier + number_literal)) ;) (if_statement "if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }" if (parenthesized_expression "(iVar18 == 1)" ( (binary_expression "iVar18 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar12 = unaff_EDI + 0x7083b;\n  }" { (expression_statement "iVar12 = unaff_EDI + 0x7083b;" (assignment_expression "iVar12 = unaff_EDI + 0x7083b" identifier = (binary_expression "unaff_EDI + 0x7083b" identifier + number_literal)) ;) })) (expression_statement "iVar17 = iVar18 * 0x10;" (assignment_expression "iVar17 = iVar18 * 0x10" identifier = (binary_expression "iVar18 * 0x10" identifier * number_literal)) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_3c = param_1;" (assignment_expression "local_3c = param_1" identifier = identifier) ;) (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" identifier = number_literal) ;) (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + identifier) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 & 0xfffb;" (assignment_expression "*puVar1 = *puVar1 & 0xfffb" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xfffb" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "lVar8 = lVar19;" (assignment_expression "lVar8 = lVar19" identifier = identifier) ;) (if_statement "if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }" if (parenthesized_expression "(*(char *)(iVar9 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar9 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar9 + 0x4d)" * (cast_expression "(char *)(iVar9 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4d)" ( (binary_expression "iVar9 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }" { (expression_statement "local_4c[0] = iVar9;" (assignment_expression "local_4c[0] = iVar9" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = iVar18;" (assignment_expression "local_44 = iVar18" identifier = identifier) ;) (expression_statement "iVar10 = FUN_00044730();" (assignment_expression "iVar10 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar8 = CONCAT44(local_44,local_4c[0]);" (assignment_expression "lVar8 = CONCAT44(local_44,local_4c[0])" identifier = (call_expression "CONCAT44(local_44,local_4c[0])" identifier (argument_list "(local_44,local_4c[0])" ( identifier , (subscript_expression "local_4c[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar10 != 0) goto LAB_000e9efd;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000e9efd;" goto statement_identifier ;)) (expression_statement "local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);" (assignment_expression "local_70 = (undefined1)((ulonglong)lVar19 >> 0x20)" identifier = (call_expression "(undefined1)((ulonglong)lVar19 >> 0x20)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)lVar19 >> 0x20)" ( (binary_expression "(ulonglong)lVar19 >> 0x20" (cast_expression "(ulonglong)lVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = *(undefined1 *)(iVar9 + 0xa0);" (assignment_expression "uVar5 = *(undefined1 *)(iVar9 + 0xa0)" identifier = (pointer_expression "*(undefined1 *)(iVar9 + 0xa0)" * (cast_expression "(undefined1 *)(iVar9 + 0xa0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar9 + 0xa0) = local_70;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa0) = local_70" (pointer_expression "*(undefined1 *)(iVar9 + 0xa0)" * (cast_expression "(undefined1 *)(iVar9 + 0xa0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041040();" (call_expression "FUN_00041040()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;" (assignment_expression "*(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe" (pointer_expression "*(byte *)(iVar9 + 0xa2)" * (cast_expression "(byte *)(iVar9 + 0xa2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa2)" ( (binary_expression "iVar9 + 0xa2" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar9 + 0xa2) & 0xfe" (pointer_expression "*(byte *)(iVar9 + 0xa2)" * (cast_expression "(byte *)(iVar9 + 0xa2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa2)" ( (binary_expression "iVar9 + 0xa2" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x9c) = local_50;" (assignment_expression "*(undefined4 *)(iVar9 + 0x9c) = local_50" (pointer_expression "*(undefined4 *)(iVar9 + 0x9c)" * (cast_expression "(undefined4 *)(iVar9 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x9c)" ( (binary_expression "iVar9 + 0x9c" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00100700(0,0,&local_50,0);" (call_expression "FUN_00100700(0,0,&local_50,0)" identifier (argument_list "(0,0,&local_50,0)" ( number_literal , number_literal , (pointer_expression "&local_50" & identifier) , number_literal ))) ;) (expression_statement "iVar10 = *(int *)(iVar9 + 0x3c);" (assignment_expression "iVar10 = *(int *)(iVar9 + 0x3c)" identifier = (pointer_expression "*(int *)(iVar9 + 0x3c)" * (cast_expression "(int *)(iVar9 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x3c)" ( (binary_expression "iVar9 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar9 + 0xa0) = uVar5;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa0) = uVar5" (pointer_expression "*(undefined1 *)(iVar9 + 0xa0)" * (cast_expression "(undefined1 *)(iVar9 + 0xa0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }" if (parenthesized_expression "((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0))" ( (binary_expression "(iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(byte *)(iVar9 + 0xa2) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0xa2) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0xa2) & 1)" ( (binary_expression "*(byte *)(iVar9 + 0xa2) & 1" (pointer_expression "*(byte *)(iVar9 + 0xa2)" * (cast_expression "(byte *)(iVar9 + 0xa2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa2)" ( (binary_expression "iVar9 + 0xa2" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }" { (expression_statement "local_40 = iVar10;" (assignment_expression "local_40 = iVar10" identifier = identifier) ;) (if_statement "if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" if (parenthesized_expression "(iVar10 == 7)" ( (binary_expression "iVar10 == 7" identifier == number_literal) )) (compound_statement "{\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }" { (if_statement "if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }" if (parenthesized_expression "((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar9 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar9 + 0x4c)" * (cast_expression "(uint *)(iVar9 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4c)" ( (binary_expression "iVar9 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          FUN_000446a0();\n        }" { (expression_statement "FUN_000446a0();" (call_expression "FUN_000446a0()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" else (if_statement "if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" if (parenthesized_expression "((iVar10 != 9) && ((char)iVar10 != '\x06'))" ( (binary_expression "(iVar10 != 9) && ((char)iVar10 != '\x06')" (parenthesized_expression "(iVar10 != 9)" ( (binary_expression "iVar10 != 9" identifier != number_literal) )) && (parenthesized_expression "((char)iVar10 != '\x06')" ( (binary_expression "(char)iVar10 != '\x06'" (cast_expression "(char)iVar10" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x06'" ' escape_sequence ')) ))) )) (compound_statement "{\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" { (expression_statement "FUN_00080a90(iVar9);" (call_expression "FUN_00080a90(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "FUN_000862d0();" (call_expression "FUN_000862d0()" identifier (argument_list "()" ( ))) ;) })))) })) (expression_statement "FUN_000c0450(local_50);" (call_expression "FUN_000c0450(local_50)" identifier (argument_list "(local_50)" ( identifier ))) ;) (expression_statement "iVar10 = local_40;" (assignment_expression "iVar10 = local_40" identifier = identifier) ;) }) (else_clause "else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }" else (compound_statement "{\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }" { (labeled_statement "LAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);" statement_identifier : (expression_statement "local_44 = (int)((ulonglong)lVar8 >> 0x20);" (assignment_expression "local_44 = (int)((ulonglong)lVar8 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_4c[0] = (int)lVar8;" (assignment_expression "local_4c[0] = (int)lVar8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_000862d0();" (call_expression "FUN_000862d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = local_40;" (assignment_expression "iVar10 = local_40" identifier = identifier) ;) }))) (expression_statement "local_78 = iVar10;" (assignment_expression "local_78 = iVar10" identifier = identifier) ;) (expression_statement "local_40 = iVar10;" (assignment_expression "local_40 = iVar10" identifier = identifier) ;) (if_statement "if (iVar10 != 0) goto LAB_000ea327;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ea327;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(iVar9 + 0x10) + iVar17;" (assignment_expression "iVar3 = *(int *)(iVar9 + 0x10) + iVar17" identifier = (binary_expression "*(int *)(iVar9 + 0x10) + iVar17" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }" { (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (goto_statement "goto LAB_000ea236;" goto statement_identifier ;) })) (if_statement "if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }" { (expression_statement "FUN_00045510();" (call_expression "FUN_00045510()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (if_statement "if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }" if (parenthesized_expression "(*(char *)(iVar11 + 8) == '\0')" ( (binary_expression "*(char *)(iVar11 + 8) == '\0'" (pointer_expression "*(char *)(iVar11 + 8)" * (cast_expression "(char *)(iVar11 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }" { (expression_statement "local_78 = FUN_000aeb90();" (assignment_expression "local_78 = FUN_000aeb90()" identifier = (call_expression "FUN_000aeb90()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }" if (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }" { (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (expression_statement "cVar4 = *(char *)(iVar11 + 9);" (assignment_expression "cVar4 = *(char *)(iVar11 + 9)" identifier = (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000ea4e3;" goto statement_identifier ;) })) (expression_statement "FUN_000497b0();" (call_expression "FUN_000497b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00057a50();" (call_expression "FUN_00057a50()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(iVar3 + 4) + 9) != '\0')" ( (binary_expression "*(char *)(*(int *)(iVar3 + 4) + 9) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar3 + 4) + 9)" * (cast_expression "(char *)(*(int *)(iVar3 + 4) + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 4) + 9)" ( (binary_expression "*(int *)(iVar3 + 4) + 9" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }" { (expression_statement "piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);" (assignment_expression "piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc)" identifier = (cast_expression "(int *)(*(int *)(iVar3 + 4) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 4) + 0xc)" ( (binary_expression "*(int *)(iVar3 + 4) + 0xc" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 != 0) goto LAB_000ea327;" if (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) (goto_statement "goto LAB_000ea327;" goto statement_identifier ;)) (goto_statement "goto LAB_000ea658;" goto statement_identifier ;) })) }) (else_clause "else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }" else (compound_statement "{\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }" { (expression_statement "cVar4 = *(char *)(iVar11 + 9);" (assignment_expression "cVar4 = *(char *)(iVar11 + 9)" identifier = (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" statement_identifier : (if_statement "if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }" { (expression_statement "iVar14 = *(int *)(iVar11 + 4);" (assignment_expression "iVar14 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea505;" goto statement_identifier ;)) (labeled_statement "LAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" statement_identifier : (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;)) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (binary_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c" (pointer_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar14 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar14 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9fc9;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (binary_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c" (pointer_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar14 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar14 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);" statement_identifier : (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;)) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n          FUN_000453f0();\n        }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9fe3;" goto statement_identifier ;)) (labeled_statement "LAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" statement_identifier : (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea53d;" goto statement_identifier ;)) (labeled_statement "LAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" statement_identifier : (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;)) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea065;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);" statement_identifier : (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;)) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n          FUN_000453f0();\n        }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea07f;" goto statement_identifier ;)) (labeled_statement "LAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" statement_identifier : (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) }) (else_clause "else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" else (compound_statement "{\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" { (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9f7d;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);" statement_identifier : (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;)) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n          FUN_000453f0();\n        }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(iVar11 + 4);" (assignment_expression "iVar14 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000e9f97;" goto statement_identifier ;)) (labeled_statement "LAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" statement_identifier : (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" ( (binary_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c" (pointer_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar14 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar14 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar14 + 0xc)" * (cast_expression "(int *)(iVar14 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea521;" goto statement_identifier ;)) (labeled_statement "LAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" statement_identifier : (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;)) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea017;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (labeled_statement "LAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);" statement_identifier : (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;)) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n          FUN_000453f0();\n        }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;" if (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" ( (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea031;" goto statement_identifier ;)) (labeled_statement "LAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" statement_identifier : (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea559;" goto statement_identifier ;)) (labeled_statement "LAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" statement_identifier : (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal)) ;)) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" ( (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" * (cast_expression "(char *)(iVar11 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 10)" ( (binary_expression "iVar11 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }" { (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;" if (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" ( (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" * (cast_expression "(char *)(iVar11 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 9)" ( (binary_expression "iVar11 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea0bd;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }" else (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }" { (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" identifier = (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" * (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" ( (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" ( (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) }))) (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" identifier = (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\n        FUN_000453f0();\n      }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\n        FUN_000453f0();\n      }" { (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;) })) })))) (labeled_statement "LAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" statement_identifier : (if_statement "if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1f) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1f) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1f) & 2)" ( (binary_expression "*(byte *)(iVar9 + 0x1f) & 2" (pointer_expression "*(byte *)(iVar9 + 0x1f)" * (cast_expression "(byte *)(iVar9 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1f)" ( (binary_expression "iVar9 + 0x1f" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }" { (expression_statement "**(uint **)(iVar3 + 0xc) = local_34;" (assignment_expression "**(uint **)(iVar3 + 0xc) = local_34" (pointer_expression "**(uint **)(iVar3 + 0xc)" * (pointer_expression "*(uint **)(iVar3 + 0xc)" * (cast_expression "(uint **)(iVar3 + 0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) = identifier) ;) (if_statement "if (local_24 == 0) goto LAB_000ea449;" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ea449;" goto statement_identifier ;)) (if_statement "if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }" { (expression_statement "bVar13 = (byte)(local_24 & 3);" (assignment_expression "bVar13 = (byte)(local_24 & 3)" identifier = (call_expression "(byte)(local_24 & 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_24 & 3)" ( (binary_expression "local_24 & 3" identifier & number_literal) )))) ;) (if_statement "if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }" if (parenthesized_expression "((local_24 & 3) == 0)" ( (binary_expression "(local_24 & 3) == 0" (parenthesized_expression "(local_24 & 3)" ( (binary_expression "local_24 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar13 = 1;\n        }" { (expression_statement "bVar13 = 1;" (assignment_expression "bVar13 = 1" identifier = number_literal) ;) })) (expression_statement "*(byte *)(iVar9 + 0x4a) = bVar13;" (assignment_expression "*(byte *)(iVar9 + 0x4a) = bVar13" (pointer_expression "*(byte *)(iVar9 + 0x4a)" * (cast_expression "(byte *)(iVar9 + 0x4a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4a)" ( (binary_expression "iVar9 + 0x4a" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000ea0f8;" goto statement_identifier ;) })) (expression_statement "bVar13 = *(byte *)(iVar9 + 0x4a);" (assignment_expression "bVar13 = *(byte *)(iVar9 + 0x4a)" identifier = (pointer_expression "*(byte *)(iVar9 + 0x4a)" * (cast_expression "(byte *)(iVar9 + 0x4a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4a)" ( (binary_expression "iVar9 + 0x4a" identifier + number_literal) ))))) ;) (if_statement "if (bVar13 == local_24) goto LAB_000ea0f8;" if (parenthesized_expression "(bVar13 == local_24)" ( (binary_expression "bVar13 == local_24" identifier == identifier) )) (goto_statement "goto LAB_000ea0f8;" goto statement_identifier ;)) (expression_statement "FUN_00057a50();" (call_expression "FUN_00057a50()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);" statement_identifier : (expression_statement "iVar12 = *(int *)(iVar3 + 4);" (assignment_expression "iVar12 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" else (compound_statement "{\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "**(undefined4 **)(iVar3 + 0xc) = 0;" (assignment_expression "**(undefined4 **)(iVar3 + 0xc) = 0" (pointer_expression "**(undefined4 **)(iVar3 + 0xc)" * (pointer_expression "*(undefined4 **)(iVar3 + 0xc)" * (cast_expression "(undefined4 **)(iVar3 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) = number_literal) ;) (labeled_statement "LAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" statement_identifier : (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + identifier) )))) + number_literal) )))) ;)) (expression_statement "*puVar1 = *puVar1 | 4;" (assignment_expression "*puVar1 = *puVar1 | 4" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 4" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "bVar13 = *(byte *)(iVar9 + 0x4a);" (assignment_expression "bVar13 = *(byte *)(iVar9 + 0x4a)" identifier = (pointer_expression "*(byte *)(iVar9 + 0x4a)" * (cast_expression "(byte *)(iVar9 + 0x4a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4a)" ( (binary_expression "iVar9 + 0x4a" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;" statement_identifier : (expression_statement "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;" (assignment_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13" (pointer_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4d)" * (cast_expression "(byte *)(*(int *)(iVar3 + 0xc) + 0x4d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4d)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0x4d" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) = identifier) ;)) (expression_statement "iVar11 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }" if (parenthesized_expression "(*(int *)(iVar11 + 0x50) == 0)" ( (binary_expression "*(int *)(iVar11 + 0x50) == 0" (pointer_expression "*(int *)(iVar11 + 0x50)" * (cast_expression "(int *)(iVar11 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x50)" ( (binary_expression "iVar11 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }" { (if_statement "if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }" if (parenthesized_expression "((int)local_2c < 0)" ( (binary_expression "(int)local_2c < 0" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }" { (expression_statement "uVar16 = 0x7fffffff;" (assignment_expression "uVar16 = 0x7fffffff" identifier = number_literal) ;) (if_statement "if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }" if (parenthesized_expression "(local_2c != 0x80000000)" ( (binary_expression "local_2c != 0x80000000" identifier != number_literal) )) (compound_statement "{\n            uVar16 = -local_2c;\n          }" { (expression_statement "uVar16 = -local_2c;" (assignment_expression "uVar16 = -local_2c" identifier = (unary_expression "-local_2c" - identifier)) ;) })) }) (else_clause "else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }" else (compound_statement "{\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }" { (expression_statement "uVar16 = local_2c;" (assignment_expression "uVar16 = local_2c" identifier = identifier) ;) (if_statement "if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }" if (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) )) (compound_statement "{\n            uVar16 = 0xfffff830;\n          }" { (expression_statement "uVar16 = 0xfffff830;" (assignment_expression "uVar16 = 0xfffff830" identifier = number_literal) ;) })) }))) (expression_statement "*(uint *)(iVar11 + 0x50) = uVar16;" (assignment_expression "*(uint *)(iVar11 + 0x50) = uVar16" (pointer_expression "*(uint *)(iVar11 + 0x50)" * (cast_expression "(uint *)(iVar11 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x50)" ( (binary_expression "iVar11 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00054000();" (call_expression "FUN_00054000()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "*(char *)(iVar11 + 0x4c) = (char)local_30;" (assignment_expression "*(char *)(iVar11 + 0x4c) = (char)local_30" (pointer_expression "*(char *)(iVar11 + 0x4c)" * (cast_expression "(char *)(iVar11 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x4c)" ( (binary_expression "iVar11 + 0x4c" identifier + number_literal) )))) = (cast_expression "(char)local_30" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);" (assignment_expression "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" * (cast_expression "(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }" { (expression_statement "*(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c)" * (cast_expression "(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);" (assignment_expression "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" * (cast_expression "(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) })) (if_statement "if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }" if (parenthesized_expression "(4 < bVar13)" ( (binary_expression "4 < bVar13" number_literal < identifier) )) (compound_statement "{\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }" { (if_statement "if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }" if (parenthesized_expression "(*extraout_ECX != 0)" ( (binary_expression "*extraout_ECX != 0" (pointer_expression "*extraout_ECX" * identifier) != number_literal) )) (compound_statement "{\n          FUN_00044090();\n        }" { (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar12 = FUN_000579c0();" (assignment_expression "iVar12 = FUN_000579c0()" identifier = (call_expression "FUN_000579c0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) (expression_statement "*extraout_ECX = iVar12;" (assignment_expression "*extraout_ECX = iVar12" (pointer_expression "*extraout_ECX" * identifier) = identifier) ;) (goto_statement "goto LAB_000ea20b;" goto statement_identifier ;) })) (if_statement "if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }" if (parenthesized_expression "((iVar18 == 0) && (3 < (int)local_30))" ( (binary_expression "(iVar18 == 0) && (3 < (int)local_30)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) && (parenthesized_expression "(3 < (int)local_30)" ( (binary_expression "3 < (int)local_30" number_literal < (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }" { (expression_statement "*(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd" (pointer_expression "*(uint *)(iVar9 + 0x1c)" * (cast_expression "(uint *)(iVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar9 + 0x1c) & 0xfffffffd" (pointer_expression "*(uint *)(iVar9 + 0x1c)" * (cast_expression "(uint *)(iVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);" (assignment_expression "iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12)" identifier = (call_expression "FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12)" identifier (argument_list "(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12)" ( identifier , (binary_expression "unaff_EDI + 0x811cd" identifier + number_literal) , (pointer_expression "*(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17)" * (cast_expression "(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + iVar17" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + identifier) )))) , identifier )))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 0x13c);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 0x13c)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x13c)" * (cast_expression "(undefined4 *)(iVar9 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x13c)" ( (binary_expression "iVar9 + 0x13c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x13c) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0x13c) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0x13c)" * (cast_expression "(undefined4 *)(iVar9 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x13c)" ( (binary_expression "iVar9 + 0x13c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);" (assignment_expression "local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0)" identifier = (call_expression "FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0)" identifier (argument_list "(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0)" ( identifier , identifier , (binary_expression "unaff_EDI + 0x16af9" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x13c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar9 + 0x13c) = uVar6" (pointer_expression "*(undefined4 *)(iVar9 + 0x13c)" * (cast_expression "(undefined4 *)(iVar9 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x13c)" ( (binary_expression "iVar9 + 0x13c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }" if (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) )) (compound_statement "{\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }" { (expression_statement "local_78 = local_40;" (assignment_expression "local_78 = local_40" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000ea1da:\n          FUN_00044090();\n        }" { (labeled_statement "LAB_000ea1da:\n          FUN_00044090();" statement_identifier : (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;)) })) (if_statement "if (local_78 != 0) goto LAB_000ea1eb;" if (parenthesized_expression "(local_78 != 0)" ( (binary_expression "local_78 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ea1eb;" goto statement_identifier ;)) (expression_statement "FUN_000e9ba0();" (call_expression "FUN_000e9ba0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;" if (parenthesized_expression "(*(char *)(iVar9 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar9 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar9 + 0x4d)" * (cast_expression "(char *)(iVar9 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4d)" ( (binary_expression "iVar9 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ea1f1;" goto statement_identifier ;)) }) (else_clause "else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }" else (compound_statement "{\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }" { (if_statement "if (iVar12 != 0) goto LAB_000ea1da;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ea1da;" goto statement_identifier ;)) (labeled_statement "LAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }" statement_identifier : (if_statement "if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }" if (parenthesized_expression "(*(char *)(iVar9 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar9 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar9 + 0x4d)" * (cast_expression "(char *)(iVar9 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4d)" ( (binary_expression "iVar9 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }" { (labeled_statement "LAB_000ea1f1:\n          local_78 = 7;" statement_identifier : (expression_statement "local_78 = 7;" (assignment_expression "local_78 = 7" identifier = number_literal) ;)) (expression_statement "FUN_00066830();" (call_expression "FUN_00066830()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1f) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1f) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1f) & 8)" ( (binary_expression "*(byte *)(iVar9 + 0x1f) & 8" (pointer_expression "*(byte *)(iVar9 + 0x1f)" * (cast_expression "(byte *)(iVar9 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1f)" ( (binary_expression "iVar9 + 0x1f" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000ea20b;" goto statement_identifier ;)) }))) (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + identifier) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "iVar12 = *(int *)(iVar3 + 4);" (assignment_expression "iVar12 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_78 = iVar10;" (assignment_expression "local_78 = iVar10" identifier = identifier) ;) })))) (if_statement "if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }" { (expression_statement "FUN_000b9030();" (call_expression "FUN_000b9030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = *(int *)(iVar3 + 4);" (assignment_expression "iVar12 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar12 + 9) != '\0')" ( (binary_expression "*(char *)(iVar12 + 9) != '\0'" (pointer_expression "*(char *)(iVar12 + 9)" * (cast_expression "(char *)(iVar12 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 9)" ( (binary_expression "iVar12 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }" { (expression_statement "piVar2 = (int *)(iVar12 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar12 + 0xc)" identifier = (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (if_statement "if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\nLAB_000ea658:\n        FUN_000453f0();\n      }" { (labeled_statement "LAB_000ea658:\n        FUN_000453f0();" statement_identifier : (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" identifier (argument_list "()" ( ))) ;)) })) })) (if_statement "if (local_78 == 0) goto LAB_000ea236;" if (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ea236;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }" statement_identifier : (if_statement "if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }" if (parenthesized_expression "(((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0))" ( (binary_expression "((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)" (parenthesized_expression "((local_78 == 7) || (local_78 == 0xc0a))" ( (binary_expression "(local_78 == 7) || (local_78 == 0xc0a)" (parenthesized_expression "(local_78 == 7)" ( (binary_expression "local_78 == 7" identifier == number_literal) )) || (parenthesized_expression "(local_78 == 0xc0a)" ( (binary_expression "local_78 == 0xc0a" identifier == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar9 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar9 + 0x4c)" * (cast_expression "(uint *)(iVar9 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4c)" ( (binary_expression "iVar9 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    FUN_000446a0();\n  }" { (expression_statement "FUN_000446a0();" (call_expression "FUN_000446a0()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }" if (parenthesized_expression "(-1 < lVar19)" ( (binary_expression "-1 < lVar19" number_literal < identifier) )) (compound_statement "{\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }" { (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + identifier) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" identifier = (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar9 + 0x18) & 0xfffffff7" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) & number_literal)) ;) })) (if_statement "if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }" if (parenthesized_expression "((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12))" ( (binary_expression "(*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)" (parenthesized_expression "(*(int *)(iVar9 + 0x34) == 0)" ( (binary_expression "*(int *)(iVar9 + 0x34) == 0" (pointer_expression "*(int *)(iVar9 + 0x34)" * (cast_expression "(int *)(iVar9 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x34)" ( (binary_expression "iVar9 + 0x34" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)" ( (comma_expression "iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x14)" identifier = (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) , (binary_expression "0 < iVar12" number_literal < identifier)) ))) )) (compound_statement "{\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);" do (compound_statement "{\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    }" { (expression_statement "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);" (assignment_expression "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" identifier = (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar18 * 0x10" identifier * number_literal)) ))))) ;) (expression_statement "bVar13 = *(byte *)(iVar17 + 0x4e);" (assignment_expression "bVar13 = *(byte *)(iVar17 + 0x4e)" identifier = (pointer_expression "*(byte *)(iVar17 + 0x4e)" * (cast_expression "(byte *)(iVar17 + 0x4e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) ))))) ;) (while_statement "while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }" while (parenthesized_expression "((bVar13 & 8) == 0)" ( (binary_expression "(bVar13 & 8) == 0" (parenthesized_expression "(bVar13 & 8)" ( (binary_expression "bVar13 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }" { (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (iVar12 <= iVar18) goto LAB_000ea236;" if (parenthesized_expression "(iVar12 <= iVar18)" ( (binary_expression "iVar12 <= iVar18" identifier <= identifier) )) (goto_statement "goto LAB_000ea236;" goto statement_identifier ;)) (expression_statement "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);" (assignment_expression "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" identifier = (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" ( (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar18 * 0x10" identifier * number_literal)) ))))) ;) (expression_statement "bVar13 = *(byte *)(iVar17 + 0x4e);" (assignment_expression "bVar13 = *(byte *)(iVar17 + 0x4e)" identifier = (pointer_expression "*(byte *)(iVar17 + 0x4e)" * (cast_expression "(byte *)(iVar17 + 0x4e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) ))))) ;) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00066240(iVar17);" (call_expression "FUN_00066240(iVar17)" identifier (argument_list "(iVar17)" ( identifier ))) ;) (expression_statement "iVar12 = *(int *)(iVar9 + 0x14);" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x14)" identifier = (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar18 < iVar12)" ( (binary_expression "iVar18 < iVar12" identifier < identifier) )) ;) })) (labeled_statement "LAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;" statement_identifier : (expression_statement "*(undefined1 *)(iVar9 + 0xa1) = 0;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa1) = 0" (pointer_expression "*(undefined1 *)(iVar9 + 0xa1)" * (cast_expression "(undefined1 *)(iVar9 + 0xa1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa1)" ( (binary_expression "iVar9 + 0xa1" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return local_78;\n  }" { (return_statement "return local_78;" return identifier ;) })) (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , (pointer_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 (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) )) && (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) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (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) ))))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ))))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) )))) + LIT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_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 = IDENT) ;) })))) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_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) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int FUN_000e9e50(undefined4 param_1)\n\n{\n  ushort *puVar1;\n  int *piVar2;\n  int iVar3;\n  char cVar4;\n  undefined1 uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  longlong lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *extraout_ECX;\n  byte bVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  longlong lVar19;\n  int local_78;\n  undefined1 local_70;\n  undefined4 local_50;\n  int local_4c [2];\n  int local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  \n  lVar19 = FUN_0003a401();\n  iVar18 = (int)((ulonglong)lVar19 >> 0x20);\n  iVar9 = (int)lVar19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(iVar9 + 0xa1) = 1;\n  iVar12 = unaff_EDI + 0x70515;\n  if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }\n  iVar17 = iVar18 * 0x10;\n  local_40 = 0;\n  local_3c = param_1;\n  local_38 = 1;\n  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar8 = lVar19;\n  if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }\n  local_78 = iVar10;\n  local_40 = iVar10;\n  if (iVar10 != 0) goto LAB_000ea327;\n  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;\n  iVar11 = *(int *)(iVar3 + 4);\n  if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }\n  bVar7 = false;\n  if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }\n  if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }\n  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }\nLAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }\n                    \n  FUN_00153870();\n}" (primitive_type "int") (function_declarator "FUN_000e9e50(undefined4 param_1)" (identifier "FUN_000e9e50") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  ushort *puVar1;\n  int *piVar2;\n  int iVar3;\n  char cVar4;\n  undefined1 uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  longlong lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *extraout_ECX;\n  byte bVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  longlong lVar19;\n  int local_78;\n  undefined1 local_70;\n  undefined4 local_50;\n  int local_4c [2];\n  int local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  uint local_24;\n  int local_20;\n  \n  lVar19 = FUN_0003a401();\n  iVar18 = (int)((ulonglong)lVar19 >> 0x20);\n  iVar9 = (int)lVar19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(iVar9 + 0xa1) = 1;\n  iVar12 = unaff_EDI + 0x70515;\n  if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }\n  iVar17 = iVar18 * 0x10;\n  local_40 = 0;\n  local_3c = param_1;\n  local_38 = 1;\n  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n  *puVar1 = *puVar1 & 0xfffb;\n  lVar8 = lVar19;\n  if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }\n  local_78 = iVar10;\n  local_40 = iVar10;\n  if (iVar10 != 0) goto LAB_000ea327;\n  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;\n  iVar11 = *(int *)(iVar3 + 4);\n  if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }\n  if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }\n  bVar7 = false;\n  if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }\nLAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }\n  if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }\n  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }\nLAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }\n                    \n  FUN_00153870();\n}" ({ "{") (declaration "ushort *puVar1;" (type_identifier "ushort") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "undefined1 uVar5;" (type_identifier "undefined1") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (declaration "longlong lVar8;" (type_identifier "longlong") (identifier "lVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int *extraout_ECX;" (primitive_type "int") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "longlong lVar19;" (type_identifier "longlong") (identifier "lVar19") (; ";")) (declaration "int local_78;" (primitive_type "int") (identifier "local_78") (; ";")) (declaration "undefined1 local_70;" (type_identifier "undefined1") (identifier "local_70") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "int local_4c [2];" (primitive_type "int") (array_declarator "local_4c [2]" (identifier "local_4c") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "lVar19 = FUN_0003a401();" (assignment_expression "lVar19 = FUN_0003a401()" (identifier "lVar19") (= "=") (call_expression "FUN_0003a401()" (identifier "FUN_0003a401") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar18 = (int)((ulonglong)lVar19 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)lVar19 >> 0x20)" (identifier "iVar18") (= "=") (cast_expression "(int)((ulonglong)lVar19 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar19 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar19 >> 0x20" (cast_expression "(ulonglong)lVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar19")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar9 = (int)lVar19;" (assignment_expression "iVar9 = (int)lVar19" (identifier "iVar9") (= "=") (cast_expression "(int)lVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar19"))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(iVar9 + 0xa1) = 1;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa1) = 1" (pointer_expression "*(undefined1 *)(iVar9 + 0xa1)" (* "*") (cast_expression "(undefined1 *)(iVar9 + 0xa1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa1)" (( "(") (binary_expression "iVar9 + 0xa1" (identifier "iVar9") (+ "+") (number_literal "0xa1")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar12 = unaff_EDI + 0x70515;" (assignment_expression "iVar12 = unaff_EDI + 0x70515" (identifier "iVar12") (= "=") (binary_expression "unaff_EDI + 0x70515" (identifier "unaff_EDI") (+ "+") (number_literal "0x70515"))) (; ";")) (if_statement "if (iVar18 == 1) {\n    iVar12 = unaff_EDI + 0x7083b;\n  }" (if "if") (parenthesized_expression "(iVar18 == 1)" (( "(") (binary_expression "iVar18 == 1" (identifier "iVar18") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    iVar12 = unaff_EDI + 0x7083b;\n  }" ({ "{") (expression_statement "iVar12 = unaff_EDI + 0x7083b;" (assignment_expression "iVar12 = unaff_EDI + 0x7083b" (identifier "iVar12") (= "=") (binary_expression "unaff_EDI + 0x7083b" (identifier "unaff_EDI") (+ "+") (number_literal "0x7083b"))) (; ";")) (} "}"))) (expression_statement "iVar17 = iVar18 * 0x10;" (assignment_expression "iVar17 = iVar18 * 0x10" (identifier "iVar17") (= "=") (binary_expression "iVar18 * 0x10" (identifier "iVar18") (* "*") (number_literal "0x10"))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = param_1;" (assignment_expression "local_3c = param_1" (identifier "local_3c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" (identifier "local_38") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (identifier "puVar1") (= "=") (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (( "(") (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (( "(") (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0xc")) (+ "+") (identifier "iVar17")) () ")")))) (+ "+") (number_literal "0x4e")) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar1 & 0xfffb;" (assignment_expression "*puVar1 = *puVar1 & 0xfffb" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 & 0xfffb" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (& "&") (number_literal "0xfffb"))) (; ";")) (expression_statement "lVar8 = lVar19;" (assignment_expression "lVar8 = lVar19" (identifier "lVar8") (= "=") (identifier "lVar19")) (; ";")) (if_statement "if (*(char *)(iVar9 + 0x4d) == '\0') {\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }\n  else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar9 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(iVar9 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar9 + 0x4d)" (* "*") (cast_expression "(char *)(iVar9 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4d)" (( "(") (binary_expression "iVar9 + 0x4d" (identifier "iVar9") (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_4c[0] = iVar9;\n    local_44 = iVar18;\n    iVar10 = FUN_00044730();\n    lVar8 = CONCAT44(local_44,local_4c[0]);\n    if (iVar10 != 0) goto LAB_000e9efd;\n    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);\n    uVar5 = *(undefined1 *)(iVar9 + 0xa0);\n    local_50 = 0;\n    *(undefined1 *)(iVar9 + 0xa0) = local_70;\n    FUN_00041040();\n    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;\n    *(undefined4 *)(iVar9 + 0x9c) = local_50;\n    FUN_00100700(0,0,&local_50,0);\n    iVar10 = *(int *)(iVar9 + 0x3c);\n    *(undefined1 *)(iVar9 + 0xa0) = uVar5;\n    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }\n    FUN_000c0450(local_50);\n    iVar10 = local_40;\n  }" ({ "{") (expression_statement "local_4c[0] = iVar9;" (assignment_expression "local_4c[0] = iVar9" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "local_44 = iVar18;" (assignment_expression "local_44 = iVar18" (identifier "local_44") (= "=") (identifier "iVar18")) (; ";")) (expression_statement "iVar10 = FUN_00044730();" (assignment_expression "iVar10 = FUN_00044730()" (identifier "iVar10") (= "=") (call_expression "FUN_00044730()" (identifier "FUN_00044730") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar8 = CONCAT44(local_44,local_4c[0]);" (assignment_expression "lVar8 = CONCAT44(local_44,local_4c[0])" (identifier "lVar8") (= "=") (call_expression "CONCAT44(local_44,local_4c[0])" (identifier "CONCAT44") (argument_list "(local_44,local_4c[0])" (( "(") (identifier "local_44") (, ",") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_000e9efd;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000e9efd;" (goto "goto") (statement_identifier "LAB_000e9efd") (; ";"))) (expression_statement "local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);" (assignment_expression "local_70 = (undefined1)((ulonglong)lVar19 >> 0x20)" (identifier "local_70") (= "=") (call_expression "(undefined1)((ulonglong)lVar19 >> 0x20)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((ulonglong)lVar19 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar19 >> 0x20" (cast_expression "(ulonglong)lVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar19")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar5 = *(undefined1 *)(iVar9 + 0xa0);" (assignment_expression "uVar5 = *(undefined1 *)(iVar9 + 0xa0)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined1 *)(iVar9 + 0xa0)" (* "*") (cast_expression "(undefined1 *)(iVar9 + 0xa0)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa0)" (( "(") (binary_expression "iVar9 + 0xa0" (identifier "iVar9") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar9 + 0xa0) = local_70;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa0) = local_70" (pointer_expression "*(undefined1 *)(iVar9 + 0xa0)" (* "*") (cast_expression "(undefined1 *)(iVar9 + 0xa0)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa0)" (( "(") (binary_expression "iVar9 + 0xa0" (identifier "iVar9") (+ "+") (number_literal "0xa0")) () ")")))) (= "=") (identifier "local_70")) (; ";")) (expression_statement "FUN_00041040();" (call_expression "FUN_00041040()" (identifier "FUN_00041040") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;" (assignment_expression "*(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe" (pointer_expression "*(byte *)(iVar9 + 0xa2)" (* "*") (cast_expression "(byte *)(iVar9 + 0xa2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa2)" (( "(") (binary_expression "iVar9 + 0xa2" (identifier "iVar9") (+ "+") (number_literal "0xa2")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar9 + 0xa2) & 0xfe" (pointer_expression "*(byte *)(iVar9 + 0xa2)" (* "*") (cast_expression "(byte *)(iVar9 + 0xa2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa2)" (( "(") (binary_expression "iVar9 + 0xa2" (identifier "iVar9") (+ "+") (number_literal "0xa2")) () ")")))) (& "&") (number_literal "0xfe"))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0x9c) = local_50;" (assignment_expression "*(undefined4 *)(iVar9 + 0x9c) = local_50" (pointer_expression "*(undefined4 *)(iVar9 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x9c)" (( "(") (binary_expression "iVar9 + 0x9c" (identifier "iVar9") (+ "+") (number_literal "0x9c")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "FUN_00100700(0,0,&local_50,0);" (call_expression "FUN_00100700(0,0,&local_50,0)" (identifier "FUN_00100700") (argument_list "(0,0,&local_50,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar9 + 0x3c);" (assignment_expression "iVar10 = *(int *)(iVar9 + 0x3c)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar9 + 0x3c)" (* "*") (cast_expression "(int *)(iVar9 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x3c)" (( "(") (binary_expression "iVar9 + 0x3c" (identifier "iVar9") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(iVar9 + 0xa0) = uVar5;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa0) = uVar5" (pointer_expression "*(undefined1 *)(iVar9 + 0xa0)" (* "*") (cast_expression "(undefined1 *)(iVar9 + 0xa0)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa0)" (( "(") (binary_expression "iVar9 + 0xa0" (identifier "iVar9") (+ "+") (number_literal "0xa0")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }" (if "if") (parenthesized_expression "((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0))" (( "(") (binary_expression "(iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)" (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar9 + 0xa2) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0xa2) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0xa2) & 1)" (( "(") (binary_expression "*(byte *)(iVar9 + 0xa2) & 1" (pointer_expression "*(byte *)(iVar9 + 0xa2)" (* "*") (cast_expression "(byte *)(iVar9 + 0xa2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa2)" (( "(") (binary_expression "iVar9 + 0xa2" (identifier "iVar9") (+ "+") (number_literal "0xa2")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      local_40 = iVar10;\n      if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }\n    }" ({ "{") (expression_statement "local_40 = iVar10;" (assignment_expression "local_40 = iVar10" (identifier "local_40") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar10 == 7) {\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }\n      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" (if "if") (parenthesized_expression "(iVar10 == 7)" (( "(") (binary_expression "iVar10 == 7" (identifier "iVar10") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }\n      }" ({ "{") (if_statement "if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {\n          FUN_000446a0();\n        }" (if "if") (parenthesized_expression "((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)" (( "(") (binary_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00)" (( "(") (binary_expression "*(uint *)(iVar9 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar9 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar9 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4c)" (( "(") (binary_expression "iVar9 + 0x4c" (identifier "iVar9") (+ "+") (number_literal "0x4c")) () ")")))) (& "&") (number_literal "0xffff00")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000446a0();\n        }" ({ "{") (expression_statement "FUN_000446a0();" (call_expression "FUN_000446a0()" (identifier "FUN_000446a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" (else "else") (if_statement "if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" (if "if") (parenthesized_expression "((iVar10 != 9) && ((char)iVar10 != '\x06'))" (( "(") (binary_expression "(iVar10 != 9) && ((char)iVar10 != '\x06')" (parenthesized_expression "(iVar10 != 9)" (( "(") (binary_expression "iVar10 != 9" (identifier "iVar10") (!= "!=") (number_literal "9")) () ")")) (&& "&&") (parenthesized_expression "((char)iVar10 != '\x06')" (( "(") (binary_expression "(char)iVar10 != '\x06'" (cast_expression "(char)iVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar10")) (!= "!=") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        FUN_00080a90(iVar9);\n        FUN_000862d0();\n      }" ({ "{") (expression_statement "FUN_00080a90(iVar9);" (call_expression "FUN_00080a90(iVar9)" (identifier "FUN_00080a90") (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "FUN_000862d0();" (call_expression "FUN_000862d0()" (identifier "FUN_000862d0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "FUN_000c0450(local_50);" (call_expression "FUN_000c0450(local_50)" (identifier "FUN_000c0450") (argument_list "(local_50)" (( "(") (identifier "local_50") () ")"))) (; ";")) (expression_statement "iVar10 = local_40;" (assignment_expression "iVar10 = local_40" (identifier "iVar10") (= "=") (identifier "local_40")) (; ";")) (} "}")) (else_clause "else {\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }" (else "else") (compound_statement "{\nLAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);\n    local_4c[0] = (int)lVar8;\n    FUN_000862d0();\n    iVar10 = local_40;\n  }" ({ "{") (labeled_statement "LAB_000e9efd:\n    local_44 = (int)((ulonglong)lVar8 >> 0x20);" (statement_identifier "LAB_000e9efd") (: ":") (expression_statement "local_44 = (int)((ulonglong)lVar8 >> 0x20);" (assignment_expression "local_44 = (int)((ulonglong)lVar8 >> 0x20)" (identifier "local_44") (= "=") (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar8")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_4c[0] = (int)lVar8;" (assignment_expression "local_4c[0] = (int)lVar8" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(int)lVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar8"))) (; ";")) (expression_statement "FUN_000862d0();" (call_expression "FUN_000862d0()" (identifier "FUN_000862d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = local_40;" (assignment_expression "iVar10 = local_40" (identifier "iVar10") (= "=") (identifier "local_40")) (; ";")) (} "}")))) (expression_statement "local_78 = iVar10;" (assignment_expression "local_78 = iVar10" (identifier "local_78") (= "=") (identifier "iVar10")) (; ";")) (expression_statement "local_40 = iVar10;" (assignment_expression "local_40 = iVar10" (identifier "local_40") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_000ea327;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ea327;" (goto "goto") (statement_identifier "LAB_000ea327") (; ";"))) (expression_statement "iVar3 = *(int *)(iVar9 + 0x10) + iVar17;" (assignment_expression "iVar3 = *(int *)(iVar9 + 0x10) + iVar17" (identifier "iVar3") (= "=") (binary_expression "*(int *)(iVar9 + 0x10) + iVar17" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 1;\n    goto LAB_000ea236;\n  }" ({ "{") (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" (identifier "puVar1") (= "=") (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" (( "(") (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar9 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x4e")) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (| "|") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_000ea236;" (goto "goto") (statement_identifier "LAB_000ea236") (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar11 + 9) != '\0') {\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_00045510();\n    iVar11 = *(int *)(iVar3 + 4);\n  }" ({ "{") (expression_statement "FUN_00045510();" (call_expression "FUN_00045510()" (identifier "FUN_00045510") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" (identifier "bVar7") (= "=") (false "false")) (; ";")) (if_statement "if (*(char *)(iVar11 + 8) == '\0') {\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }\n  else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 8) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 8) == '\0'" (pointer_expression "*(char *)(iVar11 + 8)" (* "*") (cast_expression "(char *)(iVar11 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 8)" (( "(") (binary_expression "iVar11 + 8" (identifier "iVar11") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_78 = FUN_000aeb90();\n    if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }\n    FUN_000497b0();\n    FUN_00057a50();\n    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }\n  }" ({ "{") (expression_statement "local_78 = FUN_000aeb90();" (assignment_expression "local_78 = FUN_000aeb90()" (identifier "local_78") (= "=") (call_expression "FUN_000aeb90()" (identifier "FUN_000aeb90") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_78 == 0) {\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }" (if "if") (parenthesized_expression "(local_78 == 0)" (( "(") (binary_expression "local_78 == 0" (identifier "local_78") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar11 = *(int *)(iVar3 + 4);\n      bVar7 = true;\n      cVar4 = *(char *)(iVar11 + 9);\n      iVar15 = *(int *)(iVar11 + 4);\n      goto joined_r0x000ea4e3;\n    }" ({ "{") (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" (identifier "bVar7") (= "=") (true "true")) (; ";")) (expression_statement "cVar4 = *(char *)(iVar11 + 9);" (assignment_expression "cVar4 = *(char *)(iVar11 + 9)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x000ea4e3;" (goto "goto") (statement_identifier "joined_r0x000ea4e3") (; ";")) (} "}"))) (expression_statement "FUN_000497b0();" (call_expression "FUN_000497b0()" (identifier "FUN_000497b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00057a50();" (call_expression "FUN_00057a50()" (identifier "FUN_00057a50") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(iVar3 + 4) + 9) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(iVar3 + 4) + 9) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar3 + 4) + 9)" (* "*") (cast_expression "(char *)(*(int *)(iVar3 + 4) + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 4) + 9)" (( "(") (binary_expression "*(int *)(iVar3 + 4) + 9" (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 != 0) goto LAB_000ea327;\n      goto LAB_000ea658;\n    }" ({ "{") (expression_statement "piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);" (assignment_expression "piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc)" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(int *)(iVar3 + 4) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 4) + 0xc)" (( "(") (binary_expression "*(int *)(iVar3 + 4) + 0xc" (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar2 != 0) goto LAB_000ea327;" (if "if") (parenthesized_expression "(*piVar2 != 0)" (( "(") (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ea327;" (goto "goto") (statement_identifier "LAB_000ea327") (; ";"))) (goto_statement "goto LAB_000ea658;" (goto "goto") (statement_identifier "LAB_000ea658") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }" (else "else") (compound_statement "{\n    cVar4 = *(char *)(iVar11 + 9);\n    iVar15 = *(int *)(iVar11 + 4);\njoined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }\nLAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }\n    if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }\n    if (local_78 == 0) goto LAB_000ea236;\n  }" ({ "{") (expression_statement "cVar4 = *(char *)(iVar11 + 9);" (assignment_expression "cVar4 = *(char *)(iVar11 + 9)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (labeled_statement "joined_r0x000ea4e3:\n    if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" (statement_identifier "joined_r0x000ea4e3") (: ":") (if_statement "if (cVar4 == '\0') {\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }\n    else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar14 = *(int *)(iVar11 + 4);\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;\nLAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;\nLAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;\nLAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;\nLAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n    }" ({ "{") (expression_statement "iVar14 = *(int *)(iVar11 + 4);" (assignment_expression "iVar14 = *(int *)(iVar11 + 4)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (identifier "local_34") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea505;" (goto "goto") (statement_identifier "LAB_000ea505") (; ";"))) (labeled_statement "LAB_000e9f97:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (statement_identifier "LAB_000e9f97") (: ":") (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" (* "*") (cast_expression "(char *)(iVar11 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 10)" (( "(") (binary_expression "iVar11 + 10" (identifier "iVar11") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;\n      }" ({ "{") (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" (identifier "FUN_00045420") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (( "(") (binary_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c" (pointer_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar14 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar14 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar14 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar14 + 0xc)" (* "*") (cast_expression "(int *)(iVar14 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_30") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000e9fc9;" (goto "goto") (statement_identifier "LAB_000e9fc9") (; ";"))) (} "}")) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" (else "else") (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" ({ "{") (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (( "(") (binary_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c" (pointer_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar14 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar14 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar14 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar14 + 0xc)" (* "*") (cast_expression "(int *)(iVar14 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_30") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (labeled_statement "LAB_000e9fc9:\n        piVar2 = (int *)(iVar11 + 0xc);" (statement_identifier "LAB_000e9fc9") (: ":") (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" (identifier "piVar2") (= "=") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (; ";"))) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" (if "if") (parenthesized_expression "(*piVar2 == 0)" (( "(") (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000453f0();\n        }" ({ "{") (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" (identifier "FUN_000453f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000e9fe3;" (goto "goto") (statement_identifier "LAB_000e9fe3") (; ";"))) (labeled_statement "LAB_000ea521:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (statement_identifier "LAB_000ea521") (: ":") (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) (; ";"))) (expression_statement "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (identifier "local_2c") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea53d;" (goto "goto") (statement_identifier "LAB_000ea53d") (; ";"))) (labeled_statement "LAB_000ea031:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (statement_identifier "LAB_000ea031") (: ":") (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" (* "*") (cast_expression "(char *)(iVar11 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 10)" (( "(") (binary_expression "iVar11 + 10" (identifier "iVar11") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;\n      }" ({ "{") (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" (identifier "FUN_00045420") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_28") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea065;" (goto "goto") (statement_identifier "LAB_000ea065") (; ";"))) (} "}")) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" (else "else") (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" ({ "{") (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_28") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (labeled_statement "LAB_000ea065:\n        piVar2 = (int *)(iVar11 + 0xc);" (statement_identifier "LAB_000ea065") (: ":") (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" (identifier "piVar2") (= "=") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (; ";"))) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" (if "if") (parenthesized_expression "(*piVar2 == 0)" (( "(") (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000453f0();\n        }" ({ "{") (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" (identifier "FUN_000453f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea07f;" (goto "goto") (statement_identifier "LAB_000ea07f") (; ";"))) (labeled_statement "LAB_000ea559:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (statement_identifier "LAB_000ea559") (: ":") (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) (; ";"))) (expression_statement "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (identifier "local_24") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" (else "else") (compound_statement "{\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar14 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;\nLAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);\n      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;\nLAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }\n      iVar11 = *(int *)(iVar3 + 4);\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;\nLAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);\n      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;\n      iVar15 = *(int *)(iVar11 + 4);\n      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;\nLAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;\n      if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }\n      piVar2 = (int *)(iVar11 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\n        FUN_000453f0();\n      }\n    }" ({ "{") (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" (* "*") (cast_expression "(char *)(iVar11 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 10)" (( "(") (binary_expression "iVar11 + 10" (identifier "iVar11") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;\n      }" ({ "{") (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" (identifier "FUN_00045420") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_34") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000e9f7d;" (goto "goto") (statement_identifier "LAB_000e9f7d") (; ";"))) (} "}")) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" (else "else") (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);\n        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" ({ "{") (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_34") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (labeled_statement "LAB_000e9f7d:\n        piVar2 = (int *)(iVar11 + 0xc);" (statement_identifier "LAB_000e9f7d") (: ":") (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" (identifier "piVar2") (= "=") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (; ";"))) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" (if "if") (parenthesized_expression "(*piVar2 == 0)" (( "(") (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000453f0();\n        }" ({ "{") (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" (identifier "FUN_000453f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar11 + 4);" (assignment_expression "iVar14 = *(int *)(iVar11 + 4)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000e9f97;" (goto "goto") (statement_identifier "LAB_000e9f97") (; ";"))) (labeled_statement "LAB_000ea505:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (statement_identifier "LAB_000ea505") (: ":") (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c)" (( "(") (binary_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c" (pointer_expression "*(int *)(*(int *)(iVar14 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar14 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar14 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar14 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar14 + 0xc)" (* "*") (cast_expression "(int *)(iVar14 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";"))) (expression_statement "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (identifier "local_30") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea521;" (goto "goto") (statement_identifier "LAB_000ea521") (; ";"))) (labeled_statement "LAB_000e9fe3:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (statement_identifier "LAB_000e9fe3") (: ":") (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" (* "*") (cast_expression "(char *)(iVar11 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 10)" (( "(") (binary_expression "iVar11 + 10" (identifier "iVar11") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;\n      }" ({ "{") (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" (identifier "FUN_00045420") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_2c") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea017;" (goto "goto") (statement_identifier "LAB_000ea017") (; ";"))) (} "}")) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" (else "else") (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);\n        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\nLAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);\n        *piVar2 = *piVar2 + -1;\n        if (*piVar2 == 0) {\n          FUN_000453f0();\n        }\n      }" ({ "{") (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_2c") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (labeled_statement "LAB_000ea017:\n        piVar2 = (int *)(iVar11 + 0xc);" (statement_identifier "LAB_000ea017") (: ":") (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" (identifier "piVar2") (= "=") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (; ";"))) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar2 == 0) {\n          FUN_000453f0();\n        }" (if "if") (parenthesized_expression "(*piVar2 == 0)" (( "(") (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000453f0();\n        }" ({ "{") (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" (identifier "FUN_000453f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar11 = *(int *)(iVar3 + 4);" (assignment_expression "iVar11 = *(int *)(iVar3 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) != '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea031;" (goto "goto") (statement_identifier "LAB_000ea031") (; ";"))) (labeled_statement "LAB_000ea53d:\n      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (statement_identifier "LAB_000ea53d") (: ":") (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x34")) () ")"))))) (; ";"))) (expression_statement "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n      ;" (assignment_expression "local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (identifier "local_28") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar11 + 4);" (assignment_expression "iVar15 = *(int *)(iVar11 + 4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea559;" (goto "goto") (statement_identifier "LAB_000ea559") (; ";"))) (labeled_statement "LAB_000ea07f:\n      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (statement_identifier "LAB_000ea07f") (: ":") (expression_statement "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;" (assignment_expression "*(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(int *)(iVar11 + 0xc) + 1" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (*(char *)(iVar11 + 10) == '\0') {\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }\n      else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 10) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 10) == '\0'" (pointer_expression "*(char *)(iVar11 + 10)" (* "*") (cast_expression "(char *)(iVar11 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 10)" (( "(") (binary_expression "iVar11 + 10" (identifier "iVar11") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        FUN_00045420();\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;\n      }" ({ "{") (expression_statement "FUN_00045420();" (call_expression "FUN_00045420()" (identifier "FUN_00045420") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_24") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 9) == '\0'" (pointer_expression "*(char *)(iVar11 + 9)" (* "*") (cast_expression "(char *)(iVar11 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 9)" (( "(") (binary_expression "iVar11 + 9" (identifier "iVar11") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea0bd;" (goto "goto") (statement_identifier "LAB_000ea0bd") (; ";"))) (} "}")) (else_clause "else {\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }" (else "else") (compound_statement "{\n        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);\n        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;\n      }" ({ "{") (expression_statement "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);" (assignment_expression "uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38)" (( "(") (binary_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38" (pointer_expression "*(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0xc) + 0x38)" (( "(") (binary_expression "*(int *)(iVar15 + 0xc) + 0x38" (pointer_expression "*(int *)(iVar15 + 0xc)" (* "*") (cast_expression "(int *)(iVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18;" (assignment_expression "local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (identifier "local_24") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                   uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}")))) (expression_statement "piVar2 = (int *)(iVar11 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar11 + 0xc)" (identifier "piVar2") (= "=") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar2 == 0) {\n        FUN_000453f0();\n      }" (if "if") (parenthesized_expression "(*piVar2 == 0)" (( "(") (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_000453f0();\n      }" ({ "{") (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" (identifier "FUN_000453f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))))) (labeled_statement "LAB_000ea0bd:\n    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" (statement_identifier "LAB_000ea0bd") (: ":") (if_statement "if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }\n    else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar9 + 0x1f) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0x1f) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1f) & 2)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x1f) & 2" (pointer_expression "*(byte *)(iVar9 + 0x1f)" (* "*") (cast_expression "(byte *)(iVar9 + 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1f)" (( "(") (binary_expression "iVar9 + 0x1f" (identifier "iVar9") (+ "+") (number_literal "0x1f")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      **(uint **)(iVar3 + 0xc) = local_34;\n      if (local_24 == 0) goto LAB_000ea449;\n      if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }\n      bVar13 = *(byte *)(iVar9 + 0x4a);\n      if (bVar13 == local_24) goto LAB_000ea0f8;\n      FUN_00057a50();\n      local_78 = 1;\nLAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);\n    }" ({ "{") (expression_statement "**(uint **)(iVar3 + 0xc) = local_34;" (assignment_expression "**(uint **)(iVar3 + 0xc) = local_34" (pointer_expression "**(uint **)(iVar3 + 0xc)" (* "*") (pointer_expression "*(uint **)(iVar3 + 0xc)" (* "*") (cast_expression "(uint **)(iVar3 + 0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (= "=") (identifier "local_34")) (; ";")) (if_statement "if (local_24 == 0) goto LAB_000ea449;" (if "if") (parenthesized_expression "(local_24 == 0)" (( "(") (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ea449;" (goto "goto") (statement_identifier "LAB_000ea449") (; ";"))) (if_statement "if (iVar18 == 0) {\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        bVar13 = (byte)(local_24 & 3);\n        if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }\n        *(byte *)(iVar9 + 0x4a) = bVar13;\n        goto LAB_000ea0f8;\n      }" ({ "{") (expression_statement "bVar13 = (byte)(local_24 & 3);" (assignment_expression "bVar13 = (byte)(local_24 & 3)" (identifier "bVar13") (= "=") (call_expression "(byte)(local_24 & 3)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_24 & 3)" (( "(") (binary_expression "local_24 & 3" (identifier "local_24") (& "&") (number_literal "3")) () ")")))) (; ";")) (if_statement "if ((local_24 & 3) == 0) {\n          bVar13 = 1;\n        }" (if "if") (parenthesized_expression "((local_24 & 3) == 0)" (( "(") (binary_expression "(local_24 & 3) == 0" (parenthesized_expression "(local_24 & 3)" (( "(") (binary_expression "local_24 & 3" (identifier "local_24") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          bVar13 = 1;\n        }" ({ "{") (expression_statement "bVar13 = 1;" (assignment_expression "bVar13 = 1" (identifier "bVar13") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*(byte *)(iVar9 + 0x4a) = bVar13;" (assignment_expression "*(byte *)(iVar9 + 0x4a) = bVar13" (pointer_expression "*(byte *)(iVar9 + 0x4a)" (* "*") (cast_expression "(byte *)(iVar9 + 0x4a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4a)" (( "(") (binary_expression "iVar9 + 0x4a" (identifier "iVar9") (+ "+") (number_literal "0x4a")) () ")")))) (= "=") (identifier "bVar13")) (; ";")) (goto_statement "goto LAB_000ea0f8;" (goto "goto") (statement_identifier "LAB_000ea0f8") (; ";")) (} "}"))) (expression_statement "bVar13 = *(byte *)(iVar9 + 0x4a);" (assignment_expression "bVar13 = *(byte *)(iVar9 + 0x4a)" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)(iVar9 + 0x4a)" (* "*") (cast_expression "(byte *)(iVar9 + 0x4a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4a)" (( "(") (binary_expression "iVar9 + 0x4a" (identifier "iVar9") (+ "+") (number_literal "0x4a")) () ")"))))) (; ";")) (if_statement "if (bVar13 == local_24) goto LAB_000ea0f8;" (if "if") (parenthesized_expression "(bVar13 == local_24)" (( "(") (binary_expression "bVar13 == local_24" (identifier "bVar13") (== "==") (identifier "local_24")) () ")")) (goto_statement "goto LAB_000ea0f8;" (goto "goto") (statement_identifier "LAB_000ea0f8") (; ";"))) (expression_statement "FUN_00057a50();" (call_expression "FUN_00057a50()" (identifier "FUN_00057a50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" (identifier "local_78") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_000ea20b:\n      iVar12 = *(int *)(iVar3 + 4);" (statement_identifier "LAB_000ea20b") (: ":") (expression_statement "iVar12 = *(int *)(iVar3 + 4);" (assignment_expression "iVar12 = *(int *)(iVar3 + 4)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" (else "else") (compound_statement "{\n      local_34 = 0;\n      local_30 = 0;\n      local_2c = 0;\n      local_28 = 0;\n      local_24 = 0;\n      **(undefined4 **)(iVar3 + 0xc) = 0;\nLAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 4;\n      bVar13 = *(byte *)(iVar9 + 0x4a);\nLAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;\n      iVar11 = *(int *)(iVar3 + 0xc);\n      if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }\n      *(char *)(iVar11 + 0x4c) = (char)local_30;\n      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }\n      if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }\n      if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }\n      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);\n      uVar6 = *(undefined4 *)(iVar9 + 0x13c);\n      *(undefined4 *)(iVar9 + 0x13c) = 0;\n      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);\n      *(undefined4 *)(iVar9 + 0x13c) = uVar6;\n      if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n      *puVar1 = *puVar1 | 1;\n      iVar12 = *(int *)(iVar3 + 4);\n      local_78 = iVar10;\n    }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "**(undefined4 **)(iVar3 + 0xc) = 0;" (assignment_expression "**(undefined4 **)(iVar3 + 0xc) = 0" (pointer_expression "**(undefined4 **)(iVar3 + 0xc)" (* "*") (pointer_expression "*(undefined4 **)(iVar3 + 0xc)" (* "*") (cast_expression "(undefined4 **)(iVar3 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000ea449:\n      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (statement_identifier "LAB_000ea449") (: ":") (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (identifier "puVar1") (= "=") (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (( "(") (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (( "(") (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0xc")) (+ "+") (identifier "iVar17")) () ")")))) (+ "+") (number_literal "0x4e")) () ")")))) (; ";"))) (expression_statement "*puVar1 = *puVar1 | 4;" (assignment_expression "*puVar1 = *puVar1 | 4" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 | 4" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (| "|") (number_literal "4"))) (; ";")) (expression_statement "bVar13 = *(byte *)(iVar9 + 0x4a);" (assignment_expression "bVar13 = *(byte *)(iVar9 + 0x4a)" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)(iVar9 + 0x4a)" (* "*") (cast_expression "(byte *)(iVar9 + 0x4a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4a)" (( "(") (binary_expression "iVar9 + 0x4a" (identifier "iVar9") (+ "+") (number_literal "0x4a")) () ")"))))) (; ";")) (labeled_statement "LAB_000ea0f8:\n      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;" (statement_identifier "LAB_000ea0f8") (: ":") (expression_statement "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;" (assignment_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13" (pointer_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4d)" (* "*") (cast_expression "(byte *)(*(int *)(iVar3 + 0xc) + 0x4d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4d)" (( "(") (binary_expression "*(int *)(iVar3 + 0xc) + 0x4d" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4d")) () ")")))) (= "=") (identifier "bVar13")) (; ";"))) (expression_statement "iVar11 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar3 + 0xc)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar11 + 0x50) == 0) {\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar11 + 0x50) == 0)" (( "(") (binary_expression "*(int *)(iVar11 + 0x50) == 0" (pointer_expression "*(int *)(iVar11 + 0x50)" (* "*") (cast_expression "(int *)(iVar11 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x50)" (( "(") (binary_expression "iVar11 + 0x50" (identifier "iVar11") (+ "+") (number_literal "0x50")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }\n        *(uint *)(iVar11 + 0x50) = uVar16;\n        FUN_00054000();\n        iVar11 = *(int *)(iVar3 + 0xc);\n      }" ({ "{") (if_statement "if ((int)local_2c < 0) {\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }\n        else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }" (if "if") (parenthesized_expression "((int)local_2c < 0)" (( "(") (binary_expression "(int)local_2c < 0" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          uVar16 = 0x7fffffff;\n          if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }\n        }" ({ "{") (expression_statement "uVar16 = 0x7fffffff;" (assignment_expression "uVar16 = 0x7fffffff" (identifier "uVar16") (= "=") (number_literal "0x7fffffff")) (; ";")) (if_statement "if (local_2c != 0x80000000) {\n            uVar16 = -local_2c;\n          }" (if "if") (parenthesized_expression "(local_2c != 0x80000000)" (( "(") (binary_expression "local_2c != 0x80000000" (identifier "local_2c") (!= "!=") (number_literal "0x80000000")) () ")")) (compound_statement "{\n            uVar16 = -local_2c;\n          }" ({ "{") (expression_statement "uVar16 = -local_2c;" (assignment_expression "uVar16 = -local_2c" (identifier "uVar16") (= "=") (unary_expression "-local_2c" (- "-") (identifier "local_2c"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }" (else "else") (compound_statement "{\n          uVar16 = local_2c;\n          if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }\n        }" ({ "{") (expression_statement "uVar16 = local_2c;" (assignment_expression "uVar16 = local_2c" (identifier "uVar16") (= "=") (identifier "local_2c")) (; ";")) (if_statement "if (local_2c == 0) {\n            uVar16 = 0xfffff830;\n          }" (if "if") (parenthesized_expression "(local_2c == 0)" (( "(") (binary_expression "local_2c == 0" (identifier "local_2c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar16 = 0xfffff830;\n          }" ({ "{") (expression_statement "uVar16 = 0xfffff830;" (assignment_expression "uVar16 = 0xfffff830" (identifier "uVar16") (= "=") (number_literal "0xfffff830")) (; ";")) (} "}"))) (} "}")))) (expression_statement "*(uint *)(iVar11 + 0x50) = uVar16;" (assignment_expression "*(uint *)(iVar11 + 0x50) = uVar16" (pointer_expression "*(uint *)(iVar11 + 0x50)" (* "*") (cast_expression "(uint *)(iVar11 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x50)" (( "(") (binary_expression "iVar11 + 0x50" (identifier "iVar11") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_00054000();" (call_expression "FUN_00054000()" (identifier "FUN_00054000") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar3 + 0xc)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(char *)(iVar11 + 0x4c) = (char)local_30;" (assignment_expression "*(char *)(iVar11 + 0x4c) = (char)local_30" (pointer_expression "*(char *)(iVar11 + 0x4c)" (* "*") (cast_expression "(char *)(iVar11 + 0x4c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x4c)" (( "(") (binary_expression "iVar11 + 0x4c" (identifier "iVar11") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (cast_expression "(char)local_30" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_30"))) (; ";")) (expression_statement "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);" (assignment_expression "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4c)" (( "(") (binary_expression "*(int *)(iVar3 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (if_statement "if (bVar13 == 0) {\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }" (if "if") (parenthesized_expression "(bVar13 == 0)" (( "(") (binary_expression "bVar13 == 0" (identifier "bVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;\n        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);\n      }" ({ "{") (expression_statement "*(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c)" (* "*") (cast_expression "(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4c)" (( "(") (binary_expression "*(int *)(iVar3 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);" (assignment_expression "bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar3 + 0xc) + 0x4c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0x4c)" (( "(") (binary_expression "*(int *)(iVar3 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (4 < bVar13) {\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }" (if "if") (parenthesized_expression "(4 < bVar13)" (( "(") (binary_expression "4 < bVar13" (number_literal "4") (< "<") (identifier "bVar13")) () ")")) (compound_statement "{\n        if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }\n        iVar12 = FUN_000579c0();\n        local_78 = 1;\n        *extraout_ECX = iVar12;\n        goto LAB_000ea20b;\n      }" ({ "{") (if_statement "if (*extraout_ECX != 0) {\n          FUN_00044090();\n        }" (if "if") (parenthesized_expression "(*extraout_ECX != 0)" (( "(") (binary_expression "*extraout_ECX != 0" (pointer_expression "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00044090();\n        }" ({ "{") (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" (identifier "FUN_00044090") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar12 = FUN_000579c0();" (assignment_expression "iVar12 = FUN_000579c0()" (identifier "iVar12") (= "=") (call_expression "FUN_000579c0()" (identifier "FUN_000579c0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" (identifier "local_78") (= "=") (number_literal "1")) (; ";")) (expression_statement "*extraout_ECX = iVar12;" (assignment_expression "*extraout_ECX = iVar12" (pointer_expression "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (= "=") (identifier "iVar12")) (; ";")) (goto_statement "goto LAB_000ea20b;" (goto "goto") (statement_identifier "LAB_000ea20b") (; ";")) (} "}"))) (if_statement "if ((iVar18 == 0) && (3 < (int)local_30)) {\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }" (if "if") (parenthesized_expression "((iVar18 == 0) && (3 < (int)local_30))" (( "(") (binary_expression "(iVar18 == 0) && (3 < (int)local_30)" (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(3 < (int)local_30)" (( "(") (binary_expression "3 < (int)local_30" (number_literal "3") (< "<") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) () ")"))) () ")")) (compound_statement "{\n        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;\n      }" ({ "{") (expression_statement "*(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd" (pointer_expression "*(uint *)(iVar9 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar9 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar9 + 0x1c) & 0xfffffffd" (pointer_expression "*(uint *)(iVar9 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar9 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "0xfffffffd"))) (; ";")) (} "}"))) (expression_statement "iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);" (assignment_expression "iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12)" (identifier "iVar12") (= "=") (call_expression "FUN_000861f0(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12)" (identifier "FUN_000861f0") (argument_list "(iVar9,unaff_EDI + 0x811cd,\n                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12)" (( "(") (identifier "iVar9") (, ",") (binary_expression "unaff_EDI + 0x811cd" (identifier "unaff_EDI") (+ "+") (number_literal "0x811cd")) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x10) + iVar17)" (( "(") (binary_expression "*(int *)(iVar9 + 0x10) + iVar17" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "iVar17")) () ")")))) (, ",") (identifier "iVar12") () ")")))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 0x13c);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 0x13c)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x13c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x13c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x13c)" (( "(") (binary_expression "iVar9 + 0x13c" (identifier "iVar9") (+ "+") (number_literal "0x13c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0x13c) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0x13c) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0x13c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x13c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x13c)" (( "(") (binary_expression "iVar9 + 0x13c" (identifier "iVar9") (+ "+") (number_literal "0x13c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);" (assignment_expression "local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0)" (identifier "local_78") (= "=") (call_expression "FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0)" (identifier "FUN_000e9460") (argument_list "(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0)" (( "(") (identifier "iVar9") (, ",") (identifier "iVar12") (, ",") (binary_expression "unaff_EDI + 0x16af9" (identifier "unaff_EDI") (+ "+") (number_literal "0x16af9")) (, ",") (identifier "local_4c") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0x13c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar9 + 0x13c) = uVar6" (pointer_expression "*(undefined4 *)(iVar9 + 0x13c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x13c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x13c)" (( "(") (binary_expression "iVar9 + 0x13c" (identifier "iVar9") (+ "+") (number_literal "0x13c")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (local_78 == 0) {\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }\n      else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }" (if "if") (parenthesized_expression "(local_78 == 0)" (( "(") (binary_expression "local_78 == 0" (identifier "local_78") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_78 = local_40;\n        if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }\n        if (local_78 != 0) goto LAB_000ea1eb;\n        FUN_000e9ba0();\n        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;\n      }" ({ "{") (expression_statement "local_78 = local_40;" (assignment_expression "local_78 = local_40" (identifier "local_78") (= "=") (identifier "local_40")) (; ";")) (if_statement "if (iVar12 != 0) {\nLAB_000ea1da:\n          FUN_00044090();\n        }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000ea1da:\n          FUN_00044090();\n        }" ({ "{") (labeled_statement "LAB_000ea1da:\n          FUN_00044090();" (statement_identifier "LAB_000ea1da") (: ":") (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" (identifier "FUN_00044090") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (if_statement "if (local_78 != 0) goto LAB_000ea1eb;" (if "if") (parenthesized_expression "(local_78 != 0)" (( "(") (binary_expression "local_78 != 0" (identifier "local_78") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ea1eb;" (goto "goto") (statement_identifier "LAB_000ea1eb") (; ";"))) (expression_statement "FUN_000e9ba0();" (call_expression "FUN_000e9ba0()" (identifier "FUN_000e9ba0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;" (if "if") (parenthesized_expression "(*(char *)(iVar9 + 0x4d) != '\0')" (( "(") (binary_expression "*(char *)(iVar9 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar9 + 0x4d)" (* "*") (cast_expression "(char *)(iVar9 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4d)" (( "(") (binary_expression "iVar9 + 0x4d" (identifier "iVar9") (+ "+") (number_literal "0x4d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ea1f1;" (goto "goto") (statement_identifier "LAB_000ea1f1") (; ";"))) (} "}")) (else_clause "else {\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }" (else "else") (compound_statement "{\n        if (iVar12 != 0) goto LAB_000ea1da;\nLAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }\n        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;\n      }" ({ "{") (if_statement "if (iVar12 != 0) goto LAB_000ea1da;" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ea1da;" (goto "goto") (statement_identifier "LAB_000ea1da") (; ";"))) (labeled_statement "LAB_000ea1eb:\n        if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }" (statement_identifier "LAB_000ea1eb") (: ":") (if_statement "if (*(char *)(iVar9 + 0x4d) != '\0') {\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar9 + 0x4d) != '\0')" (( "(") (binary_expression "*(char *)(iVar9 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar9 + 0x4d)" (* "*") (cast_expression "(char *)(iVar9 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4d)" (( "(") (binary_expression "iVar9 + 0x4d" (identifier "iVar9") (+ "+") (number_literal "0x4d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000ea1f1:\n          local_78 = 7;\n          FUN_00066830();\n        }" ({ "{") (labeled_statement "LAB_000ea1f1:\n          local_78 = 7;" (statement_identifier "LAB_000ea1f1") (: ":") (expression_statement "local_78 = 7;" (assignment_expression "local_78 = 7" (identifier "local_78") (= "=") (number_literal "7")) (; ";"))) (expression_statement "FUN_00066830();" (call_expression "FUN_00066830()" (identifier "FUN_00066830") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;" (if "if") (parenthesized_expression "((*(byte *)(iVar9 + 0x1f) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0x1f) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1f) & 8)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x1f) & 8" (pointer_expression "*(byte *)(iVar9 + 0x1f)" (* "*") (cast_expression "(byte *)(iVar9 + 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1f)" (( "(") (binary_expression "iVar9 + 0x1f" (identifier "iVar9") (+ "+") (number_literal "0x1f")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ea20b;" (goto "goto") (statement_identifier "LAB_000ea20b") (; ";"))) (} "}")))) (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (identifier "puVar1") (= "=") (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (( "(") (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (( "(") (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0xc")) (+ "+") (identifier "iVar17")) () ")")))) (+ "+") (number_literal "0x4e")) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (| "|") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar3 + 4);" (assignment_expression "iVar12 = *(int *)(iVar3 + 4)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_78 = iVar10;" (assignment_expression "local_78 = iVar10" (identifier "local_78") (= "=") (identifier "iVar10")) (; ";")) (} "}"))))) (if_statement "if (bVar7) {\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }" (if "if") (parenthesized_expression "(bVar7)" (( "(") (identifier "bVar7") () ")")) (compound_statement "{\n      FUN_000b9030();\n      iVar12 = *(int *)(iVar3 + 4);\n    }" ({ "{") (expression_statement "FUN_000b9030();" (call_expression "FUN_000b9030()" (identifier "FUN_000b9030") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar3 + 4);" (assignment_expression "iVar12 = *(int *)(iVar3 + 4)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar12 + 9) != '\0') {\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar12 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar12 + 9) != '\0'" (pointer_expression "*(char *)(iVar12 + 9)" (* "*") (cast_expression "(char *)(iVar12 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 9)" (( "(") (binary_expression "iVar12 + 9" (identifier "iVar12") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      piVar2 = (int *)(iVar12 + 0xc);\n      *piVar2 = *piVar2 + -1;\n      if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }\n    }" ({ "{") (expression_statement "piVar2 = (int *)(iVar12 + 0xc);" (assignment_expression "piVar2 = (int *)(iVar12 + 0xc)" (identifier "piVar2") (= "=") (cast_expression "(int *)(iVar12 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "*piVar2 = *piVar2 + -1;" (assignment_expression "*piVar2 = *piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar2 == 0) {\nLAB_000ea658:\n        FUN_000453f0();\n      }" (if "if") (parenthesized_expression "(*piVar2 == 0)" (( "(") (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000ea658:\n        FUN_000453f0();\n      }" ({ "{") (labeled_statement "LAB_000ea658:\n        FUN_000453f0();" (statement_identifier "LAB_000ea658") (: ":") (expression_statement "FUN_000453f0();" (call_expression "FUN_000453f0()" (identifier "FUN_000453f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (} "}"))) (if_statement "if (local_78 == 0) goto LAB_000ea236;" (if "if") (parenthesized_expression "(local_78 == 0)" (( "(") (binary_expression "local_78 == 0" (identifier "local_78") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ea236;" (goto "goto") (statement_identifier "LAB_000ea236") (; ";"))) (} "}")))) (labeled_statement "LAB_000ea327:\n  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }" (statement_identifier "LAB_000ea327") (: ":") (if_statement "if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {\n    FUN_000446a0();\n  }" (if "if") (parenthesized_expression "(((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0))" (( "(") (binary_expression "((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)" (parenthesized_expression "((local_78 == 7) || (local_78 == 0xc0a))" (( "(") (binary_expression "(local_78 == 7) || (local_78 == 0xc0a)" (parenthesized_expression "(local_78 == 7)" (( "(") (binary_expression "local_78 == 7" (identifier "local_78") (== "==") (number_literal "7")) () ")")) (|| "||") (parenthesized_expression "(local_78 == 0xc0a)" (( "(") (binary_expression "local_78 == 0xc0a" (identifier "local_78") (== "==") (number_literal "0xc0a")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)" (( "(") (binary_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x4c) & 0xffff00)" (( "(") (binary_expression "*(uint *)(iVar9 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar9 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar9 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4c)" (( "(") (binary_expression "iVar9 + 0x4c" (identifier "iVar9") (+ "+") (number_literal "0x4c")) () ")")))) (& "&") (number_literal "0xffff00")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_000446a0();\n  }" ({ "{") (expression_statement "FUN_000446a0();" (call_expression "FUN_000446a0()" (identifier "FUN_000446a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (-1 < lVar19) {\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }" (if "if") (parenthesized_expression "(-1 < lVar19)" (( "(") (binary_expression "-1 < lVar19" (number_literal "-1") (< "<") (identifier "lVar19")) () ")")) (compound_statement "{\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);\n    *puVar1 = *puVar1 | 8;\n    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;\n  }" ({ "{") (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (identifier "puVar1") (= "=") (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e)" (( "(") (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar17)" (( "(") (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar17" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0xc")) (+ "+") (identifier "iVar17")) () ")")))) (+ "+") (number_literal "0x4e")) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (| "|") (number_literal "8"))) (; ";")) (expression_statement "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);" (assignment_expression "puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" (identifier "puVar1") (= "=") (cast_expression "(ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e)" (( "(") (binary_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar9 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x4e")) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (| "|") (number_literal "8"))) (; ";")) (expression_statement "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7" (pointer_expression "*(uint *)(iVar9 + 0x18)" (* "*") (cast_expression "(uint *)(iVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar9 + 0x18) & 0xfffffff7" (pointer_expression "*(uint *)(iVar9 + 0x18)" (* "*") (cast_expression "(uint *)(iVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0xfffffff7"))) (; ";")) (} "}"))) (if_statement "if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }" (if "if") (parenthesized_expression "((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12))" (( "(") (binary_expression "(*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)" (parenthesized_expression "(*(int *)(iVar9 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(iVar9 + 0x34) == 0" (pointer_expression "*(int *)(iVar9 + 0x34)" (* "*") (cast_expression "(int *)(iVar9 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x34)" (( "(") (binary_expression "iVar9 + 0x34" (identifier "iVar9") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)" (( "(") (comma_expression "iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x14)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar9 + 0x14)" (* "*") (cast_expression "(int *)(iVar9 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) (, ",") (binary_expression "0 < iVar12" (number_literal "0") (< "<") (identifier "iVar12"))) () ")"))) () ")")) (compound_statement "{\n    iVar18 = 0;\n    do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);\n  }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    } while (iVar18 < iVar12);" (do "do") (compound_statement "{\n      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n      bVar13 = *(byte *)(iVar17 + 0x4e);\n      while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }\n      iVar18 = iVar18 + 1;\n      FUN_00066240(iVar17);\n      iVar12 = *(int *)(iVar9 + 0x14);\n    }" ({ "{") (expression_statement "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);" (assignment_expression "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" (( "(") (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "iVar18 * 0x10" (identifier "iVar18") (* "*") (number_literal "0x10"))) () ")"))))) (; ";")) (expression_statement "bVar13 = *(byte *)(iVar17 + 0x4e);" (assignment_expression "bVar13 = *(byte *)(iVar17 + 0x4e)" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)(iVar17 + 0x4e)" (* "*") (cast_expression "(byte *)(iVar17 + 0x4e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x4e)" (( "(") (binary_expression "iVar17 + 0x4e" (identifier "iVar17") (+ "+") (number_literal "0x4e")) () ")"))))) (; ";")) (while_statement "while ((bVar13 & 8) == 0) {\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }" (while "while") (parenthesized_expression "((bVar13 & 8) == 0)" (( "(") (binary_expression "(bVar13 & 8) == 0" (parenthesized_expression "(bVar13 & 8)" (( "(") (binary_expression "bVar13 & 8" (identifier "bVar13") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar18 = iVar18 + 1;\n        if (iVar12 <= iVar18) goto LAB_000ea236;\n        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);\n        bVar13 = *(byte *)(iVar17 + 0x4e);\n      }" ({ "{") (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar12 <= iVar18) goto LAB_000ea236;" (if "if") (parenthesized_expression "(iVar12 <= iVar18)" (( "(") (binary_expression "iVar12 <= iVar18" (identifier "iVar12") (<= "<=") (identifier "iVar18")) () ")")) (goto_statement "goto LAB_000ea236;" (goto "goto") (statement_identifier "LAB_000ea236") (; ";"))) (expression_statement "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);" (assignment_expression "iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10)" (( "(") (binary_expression "*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10" (binary_expression "*(int *)(iVar9 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "iVar18 * 0x10" (identifier "iVar18") (* "*") (number_literal "0x10"))) () ")"))))) (; ";")) (expression_statement "bVar13 = *(byte *)(iVar17 + 0x4e);" (assignment_expression "bVar13 = *(byte *)(iVar17 + 0x4e)" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)(iVar17 + 0x4e)" (* "*") (cast_expression "(byte *)(iVar17 + 0x4e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x4e)" (( "(") (binary_expression "iVar17 + 0x4e" (identifier "iVar17") (+ "+") (number_literal "0x4e")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00066240(iVar17);" (call_expression "FUN_00066240(iVar17)" (identifier "FUN_00066240") (argument_list "(iVar17)" (( "(") (identifier "iVar17") () ")"))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar9 + 0x14);" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x14)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar9 + 0x14)" (* "*") (cast_expression "(int *)(iVar9 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < iVar12)" (( "(") (binary_expression "iVar18 < iVar12" (identifier "iVar18") (< "<") (identifier "iVar12")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000ea236:\n  *(undefined1 *)(iVar9 + 0xa1) = 0;" (statement_identifier "LAB_000ea236") (: ":") (expression_statement "*(undefined1 *)(iVar9 + 0xa1) = 0;" (assignment_expression "*(undefined1 *)(iVar9 + 0xa1) = 0" (pointer_expression "*(undefined1 *)(iVar9 + 0xa1)" (* "*") (cast_expression "(undefined1 *)(iVar9 + 0xa1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa1)" (( "(") (binary_expression "iVar9 + 0xa1" (identifier "iVar9") (+ "+") (number_literal "0xa1")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_78;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return local_78;\n  }" ({ "{") (return_statement "return local_78;" (return "return") (identifier "local_78") (; ";")) (} "}"))) (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" (identifier "FUN_00153870") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

int function_1(type_1 *db,int iDb,char **pzErrMsg,type_2 mFlags)

{
  type_3 *puVar1;
  type_4 *puVar2;
  type_5 *puVar3;
  int var_39;
  type_6 var_22;
  type_7 var_10;
  type_8 zSql;
  type_9 *p;
  type_7 var_35;
  bool bVar8;
  type_10 lVar9;
  char **var_16;
  type_1 *db_00;
  int var_37;
  int var_7;
  char *var_31;
  type_11 *var_17;
  char **pz;
  int *extraout_ECX;
  int *piVar15;
  int var_15;
  type_12 var_26;
  int extraout_EDX;
  int extraout_EDX_00;
  int extraout_EDX_01;
  type_13 *pBVar18;
  type_13 *pBVar19;
  int *piVar20;
  int var_4;
  int var_3;
  int var_2;
  bool bVar22;
  type_10 var_36;
  type_1 *pData;
  type_14 *pOld;
  type_11 *in_stack_ffffff84;
  char *in_stack_ffffff88;
  int iVar24;
  int *piVar25;
  type_6 local_70;
  type_15 *pStmt;
  type_16 initData;
  int meta [5];
  
  var_36 = var_1();
  var_4 = (int)((type_17)var_36 >> 0x20);
  db_00 = (type_1 *)var_36;
  var_39 = *(int *)(var_2 + 0x14);
  (db_00->init).busy = '\x01';
  var_37 = var_3 + 0x70515;
  if (var_4 == 1) {
    var_37 = var_3 + 0x7083b;
  }
  piVar20 = (int *)(var_4 * 0x10);
  initData.rc = 0;
  initData.mInitFlags = (type_2)db;
  initData.nInitRow = 1;
  puVar1 = &(db_00->aDb[var_4].pSchema)->schemaFlags;
  *puVar1 = *puVar1 & 0xfffb;
  lVar9 = var_36;
  if (db_00->mallocFailed == '\0') {
    initData.db = db_00;
    initData.iDb = var_4;
    var_7 = var_5((char *)(var_3 + 0x81141),(char *)(var_3 + 0x73caa),7);
    lVar9 = var_6(initData.iDb,initData.db);
    if (var_7 != 0) goto LAB_000e9efd;
    local_70 = (type_6)((type_17)var_36 >> 0x20);
    var_22 = (db_00->init).iDb;
    pOld = (type_14 *)&pStmt;
    pStmt = (type_15 *)0x0;
    (db_00->init).iDb = local_70;
    var_8((char *)(var_3 + 0x74f14),(int *)pOld);
    puVar3 = &(db_00->init).field_0x6;
    *puVar3 = *puVar3 & 0xfe;
    (db_00->init).newTnum = (int)pStmt;
    var_31 = (char *)0x0;
    var_9
              (db_00,(char *)(var_3 + 0x81141),0,0,pOld,(type_15 **)0x0,
               (char **)in_stack_ffffff84);
    var_7 = db_00->errCode;
    (db_00->init).iDb = var_22;
    if ((var_7 != 0) && (((db_00->init).field_0x6 & 1) == 0)) {
      initData.rc = var_7;
      if (var_7 == 7) {
        var_10._0_1_ = db_00->temp_store;
        var_10._1_1_ = db_00->mallocFailed;
        var_10._2_1_ = db_00->bBenignMalloc;
        var_10._3_1_ = db_00->dfltLockMode;
        if ((var_10 & 0xffff00) == 0) {
          var_11(db_00);
        }
      }
      else if ((var_7 != 9) && ((char)var_7 != '\x06')) {
        pData = db_00;
        var_12(db_00);
        var_13((type_16 *)pData,var_31,(char *)pOld);
      }
    }
    var_14(pStmt);
    var_7 = extraout_EDX_01;
    var_15 = initData.rc;
  }
  else {
LAB_000e9efd:
    initData.iDb = (int)((type_17)lVar9 >> 0x20);
    initData.db = (type_1 *)lVar9;
    var_13((type_16 *)in_stack_ffffff84,in_stack_ffffff88,(char *)piVar20);
    var_7 = extraout_EDX;
    var_15 = initData.rc;
  }
  piVar25 = piVar20;
  initData.rc = var_15;
  if (var_15 != 0) goto LAB_000ea327;
  var_16 = &db_00->aDb->zDbSName;
  var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
  if (var_17 == (type_11 *)0x0) {
    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;
    *puVar1 = *puVar1 | 1;
    goto LAB_000ea236;
  }
  piVar15 = piVar20;
  iVar24 = var_15;
  if (var_17->sharable != '\0') {
    var_18(var_17);
    var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
    piVar15 = extraout_ECX;
    var_7 = extraout_EDX_00;
    iVar24 = var_15;
  }
  bVar8 = false;
  if (var_17->inTrans == '\0') {
    var_15 = var_19(var_17,var_7,piVar15);
    if (var_15 == 0) {
      var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
      bVar8 = true;
      var_22 = var_17->sharable;
      pBVar19 = var_17->pBt;
      goto joined_r0x000ea4e3;
    }
    var_31 = var_20(var_15);
    var_21(pz,db_00,var_31);
    var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
    if (var_17->sharable != '\0') {
      piVar20 = &var_17->wantToLock;
      *piVar20 = *piVar20 + -1;
      if (*piVar20 != 0) goto LAB_000ea327;
      goto LAB_000ea658;
    }
  }
  else {
    var_22 = var_17->sharable;
    pBVar19 = var_17->pBt;
joined_r0x000ea4e3:
    if (var_22 == '\0') {
      pBVar18 = var_17->pBt;
      var_10 = *(type_7 *)(pBVar19->pPage1->aData + 0x28);
      meta[0] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
      if (var_17->sharable == '\0') goto LAB_000ea505;
LAB_000e9f97:
      var_17->wantToLock = var_17->wantToLock + 1;
      if (var_17->locked == '\0') {
        var_23(in_stack_ffffff84);
        var_10 = *(type_7 *)(pBVar18->pPage1->aData + 0x2c);
        meta[1] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
        if (var_17->sharable != '\0') goto LAB_000e9fc9;
      }
      else {
        var_10 = *(type_7 *)(pBVar18->pPage1->aData + 0x2c);
        meta[1] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
LAB_000e9fc9:
        piVar15 = &var_17->wantToLock;
        *piVar15 = *piVar15 + -1;
        if (*piVar15 == 0) {
          var_24((type_11 *)var_17->pBt,(type_11 *)&var_17->locked);
        }
      }
      var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
      pBVar19 = var_17->pBt;
      if (var_17->sharable != '\0') goto LAB_000e9fe3;
LAB_000ea521:
      var_10 = *(type_7 *)(pBVar19->pPage1->aData + 0x30);
      meta[2] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
      if (var_17->sharable == '\0') goto LAB_000ea53d;
LAB_000ea031:
      var_17->wantToLock = var_17->wantToLock + 1;
      if ((var_17->locked != '\0') ||
         (var_23(in_stack_ffffff84), var_17->sharable != '\0')) {
        piVar15 = &var_17->wantToLock;
        *piVar15 = *piVar15 + -1;
        if (*piVar15 == 0) {
          var_24((type_11 *)var_17->pBt,(type_11 *)&var_17->locked);
        }
      }
      var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
      pBVar19 = var_17->pBt;
      if (var_17->sharable != '\0') goto LAB_000ea07f;
LAB_000ea559:
      var_10 = *(type_7 *)(pBVar19->pPage1->aData + 0x38);
      meta[4] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
    }
    else {
      var_17->wantToLock = var_17->wantToLock + 1;
      if (var_17->locked == '\0') {
        var_23(in_stack_ffffff84);
        var_10 = *(type_7 *)(pBVar19->pPage1->aData + 0x28);
        meta[0] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
        if (var_17->sharable != '\0') goto LAB_000e9f7d;
      }
      else {
        var_10 = *(type_7 *)(pBVar19->pPage1->aData + 0x28);
        meta[0] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
LAB_000e9f7d:
        piVar15 = &var_17->wantToLock;
        *piVar15 = *piVar15 + -1;
        if (*piVar15 == 0) {
          var_24((type_11 *)var_17->pBt,(type_11 *)&var_17->locked);
        }
      }
      var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
      pBVar18 = var_17->pBt;
      if (var_17->sharable != '\0') goto LAB_000e9f97;
LAB_000ea505:
      var_10 = *(type_7 *)(pBVar18->pPage1->aData + 0x2c);
      meta[1] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
      pBVar19 = var_17->pBt;
      if (var_17->sharable == '\0') goto LAB_000ea521;
LAB_000e9fe3:
      var_17->wantToLock = var_17->wantToLock + 1;
      if (var_17->locked == '\0') {
        var_23(in_stack_ffffff84);
        var_10 = *(type_7 *)(pBVar19->pPage1->aData + 0x30);
        meta[2] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
        if (var_17->sharable != '\0') goto LAB_000ea017;
      }
      else {
        var_10 = *(type_7 *)(pBVar19->pPage1->aData + 0x30);
        meta[2] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
LAB_000ea017:
        piVar15 = &var_17->wantToLock;
        *piVar15 = *piVar15 + -1;
        if (*piVar15 == 0) {
          var_24((type_11 *)var_17->pBt,(type_11 *)&var_17->locked);
        }
      }
      var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
      if (var_17->sharable != '\0') goto LAB_000ea031;
LAB_000ea53d:
      pBVar19 = var_17->pBt;
      if (var_17->sharable == '\0') goto LAB_000ea559;
LAB_000ea07f:
      var_17->wantToLock = var_17->wantToLock + 1;
      if (var_17->locked == '\0') {
        var_23(in_stack_ffffff84);
        var_10 = *(type_7 *)(pBVar19->pPage1->aData + 0x38);
        meta[4] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
        if (var_17->sharable == '\0') goto LAB_000ea0bd;
      }
      else {
        var_10 = *(type_7 *)(pBVar19->pPage1->aData + 0x38);
        meta[4] = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
      }
      piVar15 = &var_17->wantToLock;
      *piVar15 = *piVar15 + -1;
      if (*piVar15 == 0) {
        var_24((type_11 *)var_17->pBt,(type_11 *)&var_17->locked);
      }
    }
LAB_000ea0bd:
    if ((db_00->flags & 0x2000000) == 0) {
      **(int **)((int)piVar20 + (int)(var_16 + 3)) = meta[0];
      if (meta[4] == 0) goto LAB_000ea449;
      if (var_4 == 0) {
        var_26 = (type_12)(meta[4] & 3U);
        if ((meta[4] & 3U) == 0) {
          var_26 = 1;
        }
        db_00->enc = var_26;
        goto LAB_000ea0f8;
      }
      var_26 = db_00->enc;
      if ((type_7)var_26 == meta[4]) goto LAB_000ea0f8;
      var_21(pz,db_00,(char *)(var_3 + 0x81189));
      var_15 = 1;
LAB_000ea20b:
      var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
    }
    else {
      meta[1] = 0;
      meta[2] = 0;
      **(type_18 **)((int)piVar20 + (int)(var_16 + 3)) = 0;
LAB_000ea449:
      puVar2 = (type_4 *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);
      *puVar2 = *puVar2 | 4;
      var_26 = db_00->enc;
LAB_000ea0f8:
      *(type_12 *)(*(int *)((int)piVar20 + (int)(var_16 + 3)) + 0x4d) = var_26;
      var_7 = *(int *)((int)piVar20 + (int)(var_16 + 3));
      if (*(int *)(var_7 + 0x50) == 0) {
        if (meta[2] < 0) {
          var_15 = -meta[2];
          bVar22 = meta[2] != -0x80000000;
          meta[2] = 0x7fffffff;
          if (bVar22) {
            meta[2] = var_15;
          }
        }
        else if (meta[2] == 0) {
          meta[2] = -2000;
        }
        *(int *)(var_7 + 0x50) = meta[2];
        var_25
                  (*(type_11 **)((int)piVar20 + (int)(var_16 + 1)),
                   *(int *)(*(int *)((int)piVar20 + (int)(var_16 + 3)) + 0x50));
        var_7 = *(int *)((int)piVar20 + (int)(var_16 + 3));
      }
      *(char *)(var_7 + 0x4c) = (char)meta[1];
      var_26 = *(type_12 *)(*(int *)((int)piVar20 + (int)(var_16 + 3)) + 0x4c);
      if (var_26 == 0) {
        *(type_5 *)(*(int *)((int)piVar20 + (int)(var_16 + 3)) + 0x4c) = 1;
        var_26 = *(type_12 *)(*(int *)((int)piVar20 + (int)(var_16 + 3)) + 0x4c);
      }
      if (4 < var_26) {
        if (*pz != (char *)0x0) {
          var_27(db_00,*pz);
        }
        var_31 = var_28(db_00,(char *)(var_3 + 0x73cb2));
        var_15 = 1;
        *pz = var_31;
        goto LAB_000ea20b;
      }
      if ((var_4 == 0) && (3 < meta[1])) {
        *(type_7 *)&db_00->flags = (type_7)db_00->flags & 0xfffffffd;
      }
      var_31 = var_29(db_00,(char *)(var_3 + 0x811cd),
                               *(type_18 *)((int)&db_00->aDb->zDbSName + (int)piVar25),var_37);
      zSql = db_00->xAuth;
      db_00->xAuth = (type_8)0x0;
      var_15 = var_30((type_1 *)(var_3 + 0x16af9),(char *)zSql,(type_19)db_00,
                            var_31,(char **)(var_3 + 0x16af9));
      db_00->xAuth = zSql;
      if (var_15 == 0) {
        var_15 = initData.rc;
        if (var_31 != (char *)0x0) {
LAB_000ea1da:
          var_27(db_00,var_31);
        }
        if (var_15 != 0) goto LAB_000ea1eb;
        var_32(db_00,var_4);
        if (db_00->mallocFailed != '\0') goto LAB_000ea1f1;
      }
      else {
        if (var_31 != (char *)0x0) goto LAB_000ea1da;
LAB_000ea1eb:
        if (db_00->mallocFailed != '\0') {
LAB_000ea1f1:
          var_15 = 7;
          var_33(db_00);
        }
        if ((db_00->flags & 0x8000000) == 0) goto LAB_000ea20b;
      }
      puVar2 = (type_4 *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);
      *puVar2 = *puVar2 | 1;
      var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
      var_15 = iVar24;
    }
    if (bVar8) {
      var_34(var_17);
      var_17 = *(type_11 **)((int)piVar20 + (int)(var_16 + 1));
    }
    if (var_17->sharable != '\0') {
      piVar20 = &var_17->wantToLock;
      *piVar20 = *piVar20 + -1;
      if (*piVar20 == 0) {
LAB_000ea658:
        var_24((type_11 *)var_17->pBt,(type_11 *)&var_17->locked);
      }
    }
    if (var_15 == 0) goto LAB_000ea236;
  }
LAB_000ea327:
  if (((var_15 == 7) || (var_15 == 0xc0a)) &&
     (var_35._0_1_ = db_00->temp_store, var_35._1_1_ = db_00->mallocFailed,
     var_35._2_1_ = db_00->bBenignMalloc, var_35._3_1_ = db_00->dfltLockMode, (var_35 & 0xffff00) == 0)
     ) {
    var_11(db_00);
  }
  if (-1 < var_36) {
    puVar2 = (type_4 *)(*(int *)((int)&db_00->aDb->pSchema + (int)piVar25) + 0x4e);
    *puVar2 = *puVar2 | 8;
    puVar1 = &(db_00->aDb[1].pSchema)->schemaFlags;
    *puVar1 = *puVar1 | 8;
    db_00->mDbFlags = db_00->mDbFlags & 0xfffffff7;
  }
  if ((db_00->nSchemaLock == 0) && (var_37 = db_00->nDb, 0 < var_37)) {
    var_4 = 0;
    do {
      p = db_00->aDb[var_4].pSchema;
      var_26 = (type_12)p->schemaFlags;
      while ((var_26 & 8) == 0) {
        var_4 = var_4 + 1;
        if (var_37 <= var_4) goto LAB_000ea236;
        p = db_00->aDb[var_4].pSchema;
        var_26 = (type_12)p->schemaFlags;
      }
      var_4 = var_4 + 1;
      var_38(p);
      var_37 = db_00->nDb;
    } while (var_4 < var_37);
  }
LAB_000ea236:
  (db_00->init).busy = '\0';
  if (var_39 == *(int *)(var_2 + 0x14)) {
    return var_15;
  }
                    /* WARNING: Subroutine does not return */
  var_40();
}


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

int MASKED(undefined4 param_1)

{
  ushort *puVar1;
  int *piVar2;
  int iVar3;
  char cVar4;
  undefined1 uVar5;
  undefined4 uVar6;
  bool bVar7;
  longlong lVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int *extraout_ECX;
  byte bVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  int iVar17;
  int iVar18;
  int unaff_EDI;
  int in_GS_OFFSET;
  longlong lVar19;
  int local_78;
  undefined1 local_70;
  undefined4 local_50;
  int local_4c [2];
  int local_44;
  int local_40;
  undefined4 local_3c;
  undefined4 local_38;
  uint local_34;
  uint local_30;
  uint local_2c;
  uint local_28;
  uint local_24;
  int local_20;
  
  lVar19 = FUN_0003a401();
  iVar18 = (int)((ulonglong)lVar19 >> 0x20);
  iVar9 = (int)lVar19;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  *(undefined1 *)(iVar9 + 0xa1) = 1;
  iVar12 = unaff_EDI + 0x70515;
  if (iVar18 == 1) {
    iVar12 = unaff_EDI + 0x7083b;
  }
  iVar17 = iVar18 * 0x10;
  local_40 = 0;
  local_3c = param_1;
  local_38 = 1;
  puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);
  *puVar1 = *puVar1 & 0xfffb;
  lVar8 = lVar19;
  if (*(char *)(iVar9 + 0x4d) == '\0') {
    local_4c[0] = iVar9;
    local_44 = iVar18;
    iVar10 = FUN_00044730();
    lVar8 = CONCAT44(local_44,local_4c[0]);
    if (iVar10 != 0) goto LAB_000e9efd;
    local_70 = (undefined1)((ulonglong)lVar19 >> 0x20);
    uVar5 = *(undefined1 *)(iVar9 + 0xa0);
    local_50 = 0;
    *(undefined1 *)(iVar9 + 0xa0) = local_70;
    FUN_00041040();
    *(byte *)(iVar9 + 0xa2) = *(byte *)(iVar9 + 0xa2) & 0xfe;
    *(undefined4 *)(iVar9 + 0x9c) = local_50;
    FUN_00100700(0,0,&local_50,0);
    iVar10 = *(int *)(iVar9 + 0x3c);
    *(undefined1 *)(iVar9 + 0xa0) = uVar5;
    if ((iVar10 != 0) && ((*(byte *)(iVar9 + 0xa2) & 1) == 0)) {
      local_40 = iVar10;
      if (iVar10 == 7) {
        if ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0) {
          FUN_000446a0();
        }
      }
      else if ((iVar10 != 9) && ((char)iVar10 != '\x06')) {
        FUN_00080a90(iVar9);
        FUN_000862d0();
      }
    }
    FUN_000c0450(local_50);
    iVar10 = local_40;
  }
  else {
LAB_000e9efd:
    local_44 = (int)((ulonglong)lVar8 >> 0x20);
    local_4c[0] = (int)lVar8;
    FUN_000862d0();
    iVar10 = local_40;
  }
  local_78 = iVar10;
  local_40 = iVar10;
  if (iVar10 != 0) goto LAB_000ea327;
  iVar3 = *(int *)(iVar9 + 0x10) + iVar17;
  iVar11 = *(int *)(iVar3 + 4);
  if (iVar11 == 0) {
    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);
    *puVar1 = *puVar1 | 1;
    goto LAB_000ea236;
  }
  if (*(char *)(iVar11 + 9) != '\0') {
    FUN_00045510();
    iVar11 = *(int *)(iVar3 + 4);
  }
  bVar7 = false;
  if (*(char *)(iVar11 + 8) == '\0') {
    local_78 = FUN_000aeb90();
    if (local_78 == 0) {
      iVar11 = *(int *)(iVar3 + 4);
      bVar7 = true;
      cVar4 = *(char *)(iVar11 + 9);
      iVar15 = *(int *)(iVar11 + 4);
      goto joined_r0x000ea4e3;
    }
    FUN_000497b0();
    FUN_00057a50();
    if (*(char *)(*(int *)(iVar3 + 4) + 9) != '\0') {
      piVar2 = (int *)(*(int *)(iVar3 + 4) + 0xc);
      *piVar2 = *piVar2 + -1;
      if (*piVar2 != 0) goto LAB_000ea327;
      goto LAB_000ea658;
    }
  }
  else {
    cVar4 = *(char *)(iVar11 + 9);
    iVar15 = *(int *)(iVar11 + 4);
joined_r0x000ea4e3:
    if (cVar4 == '\0') {
      iVar14 = *(int *)(iVar11 + 4);
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);
      local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea505;
LAB_000e9f97:
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);
        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fc9;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);
        local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
LAB_000e9fc9:
        piVar2 = (int *)(iVar11 + 0xc);
        *piVar2 = *piVar2 + -1;
        if (*piVar2 == 0) {
          FUN_000453f0();
        }
      }
      iVar11 = *(int *)(iVar3 + 4);
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9fe3;
LAB_000ea521:
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);
      local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea53d;
LAB_000ea031:
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);
        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea065;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);
        local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
LAB_000ea065:
        piVar2 = (int *)(iVar11 + 0xc);
        *piVar2 = *piVar2 + -1;
        if (*piVar2 == 0) {
          FUN_000453f0();
        }
      }
      iVar11 = *(int *)(iVar3 + 4);
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea07f;
LAB_000ea559:
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);
      local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
    }
    else {
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);
        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f7d;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x28);
        local_34 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
LAB_000e9f7d:
        piVar2 = (int *)(iVar11 + 0xc);
        *piVar2 = *piVar2 + -1;
        if (*piVar2 == 0) {
          FUN_000453f0();
        }
      }
      iVar11 = *(int *)(iVar3 + 4);
      iVar14 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000e9f97;
LAB_000ea505:
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar14 + 0xc) + 0x38) + 0x2c);
      local_30 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea521;
LAB_000e9fe3:
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);
        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea017;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x30);
        local_2c = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
LAB_000ea017:
        piVar2 = (int *)(iVar11 + 0xc);
        *piVar2 = *piVar2 + -1;
        if (*piVar2 == 0) {
          FUN_000453f0();
        }
      }
      iVar11 = *(int *)(iVar3 + 4);
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) != '\0') goto LAB_000ea031;
LAB_000ea53d:
      uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x34);
      local_28 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
      ;
      iVar15 = *(int *)(iVar11 + 4);
      if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea559;
LAB_000ea07f:
      *(int *)(iVar11 + 0xc) = *(int *)(iVar11 + 0xc) + 1;
      if (*(char *)(iVar11 + 10) == '\0') {
        FUN_00045420();
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);
        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
        if (*(char *)(iVar11 + 9) == '\0') goto LAB_000ea0bd;
      }
      else {
        uVar16 = *(uint *)(*(int *)(*(int *)(iVar15 + 0xc) + 0x38) + 0x38);
        local_24 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                   uVar16 << 0x18;
      }
      piVar2 = (int *)(iVar11 + 0xc);
      *piVar2 = *piVar2 + -1;
      if (*piVar2 == 0) {
        FUN_000453f0();
      }
    }
LAB_000ea0bd:
    if ((*(byte *)(iVar9 + 0x1f) & 2) == 0) {
      **(uint **)(iVar3 + 0xc) = local_34;
      if (local_24 == 0) goto LAB_000ea449;
      if (iVar18 == 0) {
        bVar13 = (byte)(local_24 & 3);
        if ((local_24 & 3) == 0) {
          bVar13 = 1;
        }
        *(byte *)(iVar9 + 0x4a) = bVar13;
        goto LAB_000ea0f8;
      }
      bVar13 = *(byte *)(iVar9 + 0x4a);
      if (bVar13 == local_24) goto LAB_000ea0f8;
      FUN_00057a50();
      local_78 = 1;
LAB_000ea20b:
      iVar12 = *(int *)(iVar3 + 4);
    }
    else {
      local_34 = 0;
      local_30 = 0;
      local_2c = 0;
      local_28 = 0;
      local_24 = 0;
      **(undefined4 **)(iVar3 + 0xc) = 0;
LAB_000ea449:
      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);
      *puVar1 = *puVar1 | 4;
      bVar13 = *(byte *)(iVar9 + 0x4a);
LAB_000ea0f8:
      *(byte *)(*(int *)(iVar3 + 0xc) + 0x4d) = bVar13;
      iVar11 = *(int *)(iVar3 + 0xc);
      if (*(int *)(iVar11 + 0x50) == 0) {
        if ((int)local_2c < 0) {
          uVar16 = 0x7fffffff;
          if (local_2c != 0x80000000) {
            uVar16 = -local_2c;
          }
        }
        else {
          uVar16 = local_2c;
          if (local_2c == 0) {
            uVar16 = 0xfffff830;
          }
        }
        *(uint *)(iVar11 + 0x50) = uVar16;
        FUN_00054000();
        iVar11 = *(int *)(iVar3 + 0xc);
      }
      *(char *)(iVar11 + 0x4c) = (char)local_30;
      bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);
      if (bVar13 == 0) {
        *(undefined1 *)(*(int *)(iVar3 + 0xc) + 0x4c) = 1;
        bVar13 = *(byte *)(*(int *)(iVar3 + 0xc) + 0x4c);
      }
      if (4 < bVar13) {
        if (*extraout_ECX != 0) {
          FUN_00044090();
        }
        iVar12 = FUN_000579c0();
        local_78 = 1;
        *extraout_ECX = iVar12;
        goto LAB_000ea20b;
      }
      if ((iVar18 == 0) && (3 < (int)local_30)) {
        *(uint *)(iVar9 + 0x1c) = *(uint *)(iVar9 + 0x1c) & 0xfffffffd;
      }
      iVar12 = FUN_000861f0(iVar9,unaff_EDI + 0x811cd,
                            *(undefined4 *)(*(int *)(iVar9 + 0x10) + iVar17),iVar12);
      uVar6 = *(undefined4 *)(iVar9 + 0x13c);
      *(undefined4 *)(iVar9 + 0x13c) = 0;
      local_78 = FUN_000e9460(iVar9,iVar12,unaff_EDI + 0x16af9,local_4c,0);
      *(undefined4 *)(iVar9 + 0x13c) = uVar6;
      if (local_78 == 0) {
        local_78 = local_40;
        if (iVar12 != 0) {
LAB_000ea1da:
          FUN_00044090();
        }
        if (local_78 != 0) goto LAB_000ea1eb;
        FUN_000e9ba0();
        if (*(char *)(iVar9 + 0x4d) != '\0') goto LAB_000ea1f1;
      }
      else {
        if (iVar12 != 0) goto LAB_000ea1da;
LAB_000ea1eb:
        if (*(char *)(iVar9 + 0x4d) != '\0') {
LAB_000ea1f1:
          local_78 = 7;
          FUN_00066830();
        }
        if ((*(byte *)(iVar9 + 0x1f) & 8) == 0) goto LAB_000ea20b;
      }
      puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);
      *puVar1 = *puVar1 | 1;
      iVar12 = *(int *)(iVar3 + 4);
      local_78 = iVar10;
    }
    if (bVar7) {
      FUN_000b9030();
      iVar12 = *(int *)(iVar3 + 4);
    }
    if (*(char *)(iVar12 + 9) != '\0') {
      piVar2 = (int *)(iVar12 + 0xc);
      *piVar2 = *piVar2 + -1;
      if (*piVar2 == 0) {
LAB_000ea658:
        FUN_000453f0();
      }
    }
    if (local_78 == 0) goto LAB_000ea236;
  }
LAB_000ea327:
  if (((local_78 == 7) || (local_78 == 0xc0a)) && ((*(uint *)(iVar9 + 0x4c) & 0xffff00) == 0)) {
    FUN_000446a0();
  }
  if (-1 < lVar19) {
    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar17) + 0x4e);
    *puVar1 = *puVar1 | 8;
    puVar1 = (ushort *)(*(int *)(*(int *)(iVar9 + 0x10) + 0x1c) + 0x4e);
    *puVar1 = *puVar1 | 8;
    *(uint *)(iVar9 + 0x18) = *(uint *)(iVar9 + 0x18) & 0xfffffff7;
  }
  if ((*(int *)(iVar9 + 0x34) == 0) && (iVar12 = *(int *)(iVar9 + 0x14), 0 < iVar12)) {
    iVar18 = 0;
    do {
      iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);
      bVar13 = *(byte *)(iVar17 + 0x4e);
      while ((bVar13 & 8) == 0) {
        iVar18 = iVar18 + 1;
        if (iVar12 <= iVar18) goto LAB_000ea236;
        iVar17 = *(int *)(*(int *)(iVar9 + 0x10) + 0xc + iVar18 * 0x10);
        bVar13 = *(byte *)(iVar17 + 0x4e);
      }
      iVar18 = iVar18 + 1;
      FUN_00066240(iVar17);
      iVar12 = *(int *)(iVar9 + 0x14);
    } while (iVar18 < iVar12);
  }
LAB_000ea236:
  *(undefined1 *)(iVar9 + 0xa1) = 0;
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_78;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00153870();
}

