
int __regparm3 sqlite3BtreeBeginTrans(Btree *p,int wrflag,int *pSchemaVersion)

{
  byte bVar1;
  BtShared *pBt;
  Pager *pPager;
  BtLock *pBVar2;
  Btree *pBVar3;
  int *piVar4;
  uint uVar5;
  Pgno PVar6;
  u8 uVar7;
  u16 uVar8;
  sqlite3 *psVar9;
  int iVar10;
  uint uVar11;
  u8 *p_00;
  sqlite3_file *psVar12;
  uint *extraout_ECX;
  MemPage *pMVar13;
  Wal *pWVar14;
  ushort uVar15;
  int extraout_EDX;
  sqlite3_file *extraout_EDX_00;
  undefined4 extraout_EDX_01;
  sqlite3_file *extraout_EDX_02;
  undefined4 extraout_EDX_03;
  undefined4 extraout_EDX_04;
  uint uVar16;
  sqlite3_file *extraout_EDX_05;
  sqlite3_file *extraout_EDX_06;
  undefined4 extraout_EDX_07;
  undefined4 extraout_EDX_08;
  undefined4 extraout_EDX_09;
  sqlite3_file *extraout_EDX_10;
  undefined4 extraout_EDX_11;
  undefined4 uVar17;
  sqlite3_file *extraout_EDX_12;
  sqlite3_file *extraout_EDX_13;
  sqlite3_file *psVar18;
  int in_GS_OFFSET;
  u32 local_44;
  MemPage *pPage1;
  int isOpen;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x62b7b;
  __x86_get_pc_thunk_di();
  pBt = p->pBt;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  pPager = pBt->pPager;
  if (p->sharable != '\0') {
    sqlite3BtreeEnter(p);
  }
  if (p->inTrans == '\x02') {
LAB_00062d40:
    if (extraout_ECX != (uint *)0x0) {
LAB_00062d48:
      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);
      *extraout_ECX =
           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
    }
    if (extraout_EDX != 0) goto LAB_00062d5d;
  }
  else {
    if ((p->inTrans == '\x01') && (extraout_EDX == 0)) {
LAB_00062e08:
      if (extraout_ECX == (uint *)0x0) {
        psVar18 = (sqlite3_file *)0x0;
        goto LAB_00062c00;
      }
      goto LAB_00062d48;
    }
    uVar15 = pBt->btsFlags;
    if (((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')) {
      if ((uVar15 & 1) == 0) goto LAB_00062c49;
      psVar18 = (sqlite3_file *)&DAT_00000008;
      if (extraout_EDX != 0) goto LAB_00062c00;
LAB_00062be5:
      if ((uVar15 & 0x80) != 0) {
LAB_00062bed:
        psVar9 = pBt->pWriter->db;
        goto LAB_00062bf2;
      }
    }
    else {
      uVar15 = uVar15 & 0xfffe;
      pBt->btsFlags = uVar15;
LAB_00062c49:
      if (extraout_EDX == 0) goto LAB_00062be5;
      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;
      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;
      pBVar3 = pBVar2->pBtree;
      while (p == pBVar3) {
        pBVar2 = pBVar2->pNext;
        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;
        pBVar3 = pBVar2->pBtree;
      }
      psVar9 = pBVar3->db;
LAB_00062bf2:
      psVar18 = (sqlite3_file *)0x106;
      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;
    }
LAB_00062c81:
    psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01');
    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;
    psVar12 = (sqlite3_file *)pBt->nPage;
    uVar15 = pBt->btsFlags & 0xffef;
    pBt->btsFlags = uVar15;
    if (psVar12 == (sqlite3_file *)0x0) {
      pBt->btsFlags = uVar15 | 0x10;
    }
    pMVar13 = pBt->pPage1;
LAB_00062cbf:
    psVar18 = (sqlite3_file *)0x0;
    if (pMVar13 == (MemPage *)0x0) goto LAB_00062d23;
LAB_00062cc3:
    if ((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)) {
LAB_00062dc8:
      iVar10 = CONCAT44(psVar12,psVar18);
      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;
LAB_00062d35:
      psVar18 = (sqlite3_file *)iVar10;
      if (pBt->inTransaction != '\0') goto LAB_00062cf5;
LAB_00062cec:
      do {
        psVar18 = (sqlite3_file *)iVar10;
        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));
LAB_00062cf5:
        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||
           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;
LAB_00062d1c:
        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;
LAB_00062d23:
        iVar10 = sqlite3PagerSharedLock(pBt->pPager);
        iVar10 = CONCAT44(extraout_EDX_01,iVar10);
        if (iVar10 != 0) goto LAB_00062d35;
        iVar10 = btreeGetPage(pBt,1,&pPage1,0);
        iVar10 = CONCAT44(extraout_EDX_04,iVar10);
        if (iVar10 != 0) goto LAB_00062d35;
        piVar4 = (int *)pPage1->aData;
        uVar5 = piVar4[7];
        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
        uVar5 = pBt->pPager->dbSize;
        uVar16 = (uint)pBt->db->flags & 0x2000000;
        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {
          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;
        }
        else if (uVar16 != 0) {
LAB_000630a0:
          local_44 = 0;
          goto LAB_000630a8;
        }
        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||
           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;
        if (2 < *(byte *)((int)piVar4 + 0x12)) {
          pBt->btsFlags = pBt->btsFlags | 1;
        }
        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;
        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {
          isOpen = 0;
          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);
          if (psVar12 == (sqlite3_file *)0x0) {
            if (isOpen != 0) goto LAB_000631e1;
            sqlite3PagerUnrefPageOne(pPage1->pDbPage);
            pMVar13 = pBt->pPage1;
            psVar12 = extraout_EDX_13;
            goto LAB_00062cbf;
          }
LAB_0006325c:
          sqlite3PagerUnrefPageOne(pPage1->pDbPage);
          pBt->pPage1 = (MemPage *)0x0;
          psVar18 = psVar12;
LAB_00063279:
          iVar10 = CONCAT44(psVar12,psVar18);
          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;
          goto LAB_00062d1c;
        }
LAB_000631e1:
        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))
            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |
                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))
           || (0xfeff < uVar16 - 0x101)) {
          psVar18 = (sqlite3_file *)0x1a;
          sqlite3PagerUnrefPageOne(pPage1->pDbPage);
          pBt->pPage1 = (MemPage *)0x0;
          psVar12 = extraout_EDX_10;
          goto LAB_00062ce2;
        }
        pBt->btsFlags = pBt->btsFlags | 2;
        bVar1 = *(byte *)(piVar4 + 5);
        uVar11 = uVar16 - bVar1;
        if (uVar16 != pBt->pageSize) {
          sqlite3PagerUnrefPageOne(pPage1->pDbPage);
          pBt->usableSize = uVar11;
          pBt->pageSize = uVar16;
          if (pBt->pTmpSpace != (u8 *)0x0) {
            p_00 = pBt->pTmpSpace + -4;
            pBt->pTmpSpace = p_00;
            pcache1Free(p_00);
            pBt->pTmpSpace = (u8 *)0x0;
          }
          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);
          psVar12 = extraout_EDX_12;
          goto LAB_00063279;
        }
        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {
          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);
          goto LAB_0006325c;
        }
        if (0x1df < uVar11) {
          pBt->usableSize = uVar11;
          pBt->autoVacuum = piVar4[0xd] != 0;
          pBt->incrVacuum = piVar4[0x10] != 0;
LAB_000630a8:
          pBt->pPage1 = pPage1;
          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;
          pBt->maxLocal = uVar15;
          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;
          pBt->minLocal = uVar8;
          pBt->minLeaf = uVar8;
          uVar7 = '\x7f';
          pBt->maxLeaf = (short)pBt->usableSize - 0x23;
          psVar12 = (sqlite3_file *)(uint)uVar15;
          if (uVar15 < 0x80) {
            uVar7 = (u8)uVar15;
          }
          pBt->max1bytePayload = uVar7;
          pBt->nPage = local_44;
          pMVar13 = pPage1;
          goto LAB_00062cbf;
        }
LAB_00062f1c:
        psVar18 = (sqlite3_file *)0x1a;
        sqlite3PagerUnrefPageOne(pPage1->pDbPage);
        pBt->pPage1 = (MemPage *)0x0;
        psVar12 = extraout_EDX_05;
LAB_00062ce2:
        iVar10 = CONCAT44(psVar12,psVar18);
      } while (pBt->inTransaction == '\0');
      goto LAB_00062c00;
    }
    if ((pBt->btsFlags & 1) != 0) goto LAB_00062cdd;
    iVar10 = CONCAT44(psVar12,pPager->errCode);
    if (pPager->errCode != 0) {
LAB_00062e70:
      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);
      if ((int)iVar10 != 0x205) goto LAB_00062d35;
LAB_00062e7c:
      if (pBt->inTransaction == '\0') {
        iVar10 = CONCAT44(uVar17,5);
        goto LAB_00062cec;
      }
      psVar18 = (sqlite3_file *)0x205;
      goto LAB_00062c00;
    }
    pPager->subjInMemory = p->db->temp_store == '\x02';
    if (pPager->eState == '\x01') {
      pWVar14 = pPager->pWal;
      if (pWVar14 != (Wal *)0x0) {
        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {
          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {
            iVar10 = pagerLockDb(pPager,4);
            iVar10 = CONCAT44(extraout_EDX_09,iVar10);
            if (iVar10 != 0) goto LAB_00062e70;
            pWVar14 = pPager->pWal;
          }
          psVar12 = pWVar14->pDbFd;
          if (pWVar14->exclusiveMode == '\0') {
            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);
            psVar12 = extraout_EDX_06;
          }
          pWVar14->exclusiveMode = '\x01';
          pWVar14 = pPager->pWal;
        }
        if (pWVar14->readOnly != '\0') {
LAB_00062cdd:
          psVar18 = (sqlite3_file *)&DAT_00000008;
          goto LAB_00062ce2;
        }
        if ((pWVar14->exclusiveMode == '\0') &&
           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)
           ) goto LAB_00062e70;
        pWVar14->writeLock = '\x01';
        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);
        if (iVar10 == 0) goto LAB_00063076;
        uVar17 = extraout_EDX_07;
        if (pWVar14->exclusiveMode == '\0') {
          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);
          uVar17 = extraout_EDX_11;
        }
        pWVar14->writeLock = '\0';
        goto LAB_00062e7c;
      }
      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {
        iVar10 = pagerLockDb(pPager,2);
        uVar17 = extraout_EDX_08;
        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;
LAB_00062e67:
        iVar10 = CONCAT44(uVar17,iVar10);
        if (iVar10 != 0) goto LAB_00062e70;
      }
      else if (1 < extraout_EDX) {
LAB_00062e57:
        iVar10 = pager_wait_on_lock(pPager,4);
        uVar17 = extraout_EDX_03;
        goto LAB_00062e67;
      }
LAB_00063076:
      PVar6 = pPager->dbSize;
      pPager->eState = '\x02';
      *(undefined4 *)&pPager->journalOff = 0;
      *(undefined4 *)((int)&pPager->journalOff + 4) = 0;
      pPager->dbHintSize = PVar6;
      pPager->dbFileSize = PVar6;
      pPager->dbOrigSize = PVar6;
    }
    if (pBt->nPage == 0) {
      psVar18 = (sqlite3_file *)newDatabase(pBt);
      psVar12 = extraout_EDX_02;
      goto LAB_00062dc8;
    }
LAB_00062dd0:
    if ((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')) {
      (p->lock).eLock = '\x01';
      (p->lock).pNext = pBt->pLock;
      pBt->pLock = &p->lock;
    }
    bVar1 = pBt->inTransaction;
    if (extraout_EDX == 0) {
      p->inTrans = '\x01';
      if (bVar1 == 0) {
        pBt->inTransaction = '\x01';
      }
      goto LAB_00062e08;
    }
    p->inTrans = '\x02';
    if (bVar1 < 2) {
      pBt->inTransaction = '\x02';
    }
    pMVar13 = pBt->pPage1;
    pBt->pWriter = p;
    uVar15 = pBt->btsFlags & 0xffbf;
    if (1 < extraout_EDX) {
      uVar15 = uVar15 | 0x40;
    }
    pBt->btsFlags = uVar15;
    uVar5 = *(uint *)(pMVar13->aData + 0x1c);
    if (pBt->nPage ==
        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18))
    goto LAB_00062d40;
    psVar18 = (sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage);
    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;
    uVar5 = pBt->nPage;
    *(uint *)(pMVar13->aData + 0x1c) =
         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;
LAB_00062d5d:
    iVar10 = p->db->nSavepoint;
    if ((pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0')) {
      psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);
      goto LAB_00062c00;
    }
  }
  psVar18 = (sqlite3_file *)0x0;
LAB_00062c00:
  if (p->sharable != '\0') {
    piVar4 = &p->wantToLock;
    *piVar4 = *piVar4 + -1;
    if (*piVar4 == 0) {
      sqlite3BtreeLeave(p);
    }
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return (int)psVar18;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



int __regparm3 FUN_00062b70(int *param_1)

{
  int iVar1;
  byte bVar2;
  int *piVar3;
  int iVar4;
  undefined4 *puVar5;
  int *piVar6;
  uint uVar7;
  undefined4 uVar8;
  ushort uVar9;
  short sVar10;
  int iVar11;
  uint uVar12;
  uint *extraout_ECX;
  ushort uVar13;
  int extraout_EDX;
  uint uVar14;
  int iVar15;
  int in_GS_OFFSET;
  uint local_44;
  int local_28;
  
  FUN_000a94ff();
  piVar3 = (int *)param_1[1];
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  iVar4 = *piVar3;
  if (*(char *)((int)param_1 + 9) != '\0') {
    FUN_00027820();
  }
  if ((char)param_1[2] == '\x02') {
LAB_00062d40:
    if (extraout_ECX != (uint *)0x0) {
LAB_00062d48:
      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);
      *extraout_ECX =
           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
    }
    if (extraout_EDX != 0) goto LAB_00062d5d;
  }
  else {
    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {
LAB_00062e08:
      if (extraout_ECX == (uint *)0x0) {
        iVar15 = 0;
        goto LAB_00062c00;
      }
      goto LAB_00062d48;
    }
    uVar9 = *(ushort *)(piVar3 + 6);
    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {
      if ((uVar9 & 1) == 0) goto LAB_00062c49;
      iVar15 = 8;
      if (extraout_EDX != 0) goto LAB_00062c00;
LAB_00062be5:
      if ((uVar9 & 0x80) != 0) {
LAB_00062bed:
        iVar11 = *(int *)piVar3[0x14];
        goto LAB_00062bf2;
      }
    }
    else {
      uVar9 = uVar9 & 0xfffe;
      *(ushort *)(piVar3 + 6) = uVar9;
LAB_00062c49:
      if (extraout_EDX == 0) goto LAB_00062be5;
      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;
      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))
      goto LAB_00062c81;
      piVar6 = (int *)*puVar5;
      while (param_1 == piVar6) {
        puVar5 = (undefined4 *)puVar5[3];
        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;
        piVar6 = (int *)*puVar5;
      }
      iVar11 = *piVar6;
LAB_00062bf2:
      iVar15 = 0x106;
      if (iVar11 != 0) goto LAB_00062c00;
    }
LAB_00062c81:
    iVar15 = FUN_0001f420();
    if (iVar15 != 0) goto LAB_00062c00;
    uVar9 = *(ushort *)(piVar3 + 6);
    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;
    if (piVar3[0xc] == 0) {
      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;
    }
    iVar11 = piVar3[3];
LAB_00062cbf:
    if (iVar11 == 0) goto LAB_00062d23;
LAB_00062cc3:
    if ((iVar15 != 0) || (extraout_EDX == 0)) {
LAB_00062dc8:
      if (iVar15 == 0) goto LAB_00062dd0;
LAB_00062d35:
      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;
LAB_00062cec:
      do {
        FUN_00061fb0();
LAB_00062cf5:
        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||
           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;
LAB_00062d1c:
        if (piVar3[3] != 0) goto LAB_00062cc3;
LAB_00062d23:
        iVar15 = FUN_000622f0();
        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;
        piVar6 = *(int **)(local_28 + 0x38);
        uVar7 = piVar6[7];
        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
        uVar7 = *(uint *)(*piVar3 + 0x18);
        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;
        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {
          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;
        }
        else if (uVar14 != 0) {
LAB_000630a0:
          local_44 = 0;
          goto LAB_000630a8;
        }
        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||
           (piVar6[3] != 0x332074)) goto LAB_00062f1c;
        if (2 < *(byte *)((int)piVar6 + 0x12)) {
          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;
        }
        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;
        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {
          iVar15 = FUN_0001799c();
          if (iVar15 == 0) {
            iVar15 = 0;
            FUN_00061f80();
            iVar11 = piVar3[3];
            goto LAB_00062cbf;
          }
LAB_0006325c:
          FUN_00061f80();
          piVar3[3] = 0;
LAB_00063279:
          if (iVar15 != 0) goto LAB_00062d35;
          goto LAB_00062d1c;
        }
        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))
           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |
                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||
               (0xfeff < uVar14 - 0x101)))) {
          iVar15 = 0x1a;
          FUN_00061f80();
          piVar3[3] = 0;
          goto LAB_00062ce2;
        }
        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;
        uVar12 = uVar14 - *(byte *)(piVar6 + 5);
        if (uVar14 != piVar3[9]) {
          FUN_00061f80();
          piVar3[10] = uVar12;
          piVar3[9] = uVar14;
          if (piVar3[0x15] != 0) {
            piVar3[0x15] = piVar3[0x15] + -4;
            FUN_00026f80();
            piVar3[0x15] = 0;
          }
          iVar15 = FUN_00041550();
          goto LAB_00063279;
        }
        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {
          iVar15 = FUN_000383f0();
          goto LAB_0006325c;
        }
        if (0x1df < uVar12) {
          piVar3[10] = uVar12;
          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;
          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;
LAB_000630a8:
          piVar3[3] = local_28;
          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;
          *(ushort *)((int)piVar3 + 0x1a) = uVar13;
          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;
          *(short *)(piVar3 + 7) = sVar10;
          *(short *)(piVar3 + 8) = sVar10;
          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;
          uVar9 = 0x7f;
          if (uVar13 < 0x80) {
            uVar9 = uVar13;
          }
          *(char *)((int)piVar3 + 0x15) = (char)uVar9;
          piVar3[0xc] = local_44;
          iVar11 = local_28;
          goto LAB_00062cbf;
        }
LAB_00062f1c:
        iVar15 = 0x1a;
        FUN_00061f80();
        piVar3[3] = 0;
LAB_00062ce2:
      } while ((char)piVar3[5] == '\0');
      goto LAB_00062c00;
    }
    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;
    iVar15 = *(int *)(iVar4 + 0x28);
    if (iVar15 != 0) {
LAB_00062e70:
      if (iVar15 != 0x205) goto LAB_00062d35;
LAB_00062e7c:
      if ((char)piVar3[5] == '\0') {
        iVar15 = 5;
        goto LAB_00062cec;
      }
      iVar15 = 0x205;
      goto LAB_00062c00;
    }
    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';
    if (*(char *)(iVar4 + 0x10) == '\x01') {
      iVar11 = *(int *)(iVar4 + 0xd4);
      if (iVar11 != 0) {
        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {
          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {
            iVar15 = FUN_00027390();
            if (iVar15 != 0) goto LAB_00062e70;
            iVar11 = *(int *)(iVar4 + 0xd4);
          }
          if (*(char *)(iVar11 + 0x2b) == '\0') {
            (**(code **)(**(int **)(iVar11 + 4) + 0x38))
                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);
          }
          *(undefined1 *)(iVar11 + 0x2b) = 1;
          iVar11 = *(int *)(iVar4 + 0xd4);
        }
        if (*(char *)(iVar11 + 0x2e) != '\0') {
LAB_00062cdd:
          iVar15 = 8;
          goto LAB_00062ce2;
        }
        if ((*(char *)(iVar11 + 0x2b) == '\0') &&
           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),
           iVar15 != 0)) goto LAB_00062e70;
        *(undefined1 *)(iVar11 + 0x2c) = 1;
        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);
        if (iVar15 == 0) goto LAB_00063076;
        if (*(char *)(iVar11 + 0x2b) == '\0') {
          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);
        }
        *(undefined1 *)(iVar11 + 0x2c) = 0;
        goto LAB_00062e7c;
      }
      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {
        iVar15 = FUN_00027390();
        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;
LAB_00062e67:
        if (iVar15 != 0) goto LAB_00062e70;
      }
      else if (1 < extraout_EDX) {
LAB_00062e57:
        iVar15 = FUN_000273d0();
        goto LAB_00062e67;
      }
LAB_00063076:
      uVar8 = *(undefined4 *)(iVar4 + 0x18);
      *(undefined1 *)(iVar4 + 0x10) = 2;
      *(undefined4 *)(iVar4 + 0x48) = 0;
      *(undefined4 *)(iVar4 + 0x4c) = 0;
      *(undefined4 *)(iVar4 + 0x24) = uVar8;
      *(undefined4 *)(iVar4 + 0x20) = uVar8;
      *(undefined4 *)(iVar4 + 0x1c) = uVar8;
    }
    if (piVar3[0xc] == 0) {
      iVar15 = FUN_00062aa0();
      goto LAB_00062dc8;
    }
LAB_00062dd0:
    if (((char)param_1[2] == '\0') &&
       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {
      *(undefined1 *)(param_1 + 10) = 1;
      param_1[0xb] = piVar3[0x13];
      piVar3[0x13] = (int)(param_1 + 8);
    }
    bVar2 = *(byte *)(piVar3 + 5);
    if (extraout_EDX == 0) {
      *(undefined1 *)(param_1 + 2) = 1;
      if (bVar2 == 0) {
        *(undefined1 *)(piVar3 + 5) = 1;
      }
      goto LAB_00062e08;
    }
    *(undefined1 *)(param_1 + 2) = 2;
    if (bVar2 < 2) {
      *(undefined1 *)(piVar3 + 5) = 2;
    }
    iVar11 = piVar3[3];
    piVar3[0x14] = (int)param_1;
    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;
    if (1 < extraout_EDX) {
      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;
    }
    *(ushort *)(piVar3 + 6) = uVar9;
    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);
    if (piVar3[0xc] ==
        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))
    goto LAB_00062d40;
    iVar15 = FUN_0005f680();
    if (iVar15 != 0) goto LAB_00062c00;
    uVar7 = piVar3[0xc];
    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =
         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;
LAB_00062d5d:
    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {
      iVar15 = FUN_0002d050();
      goto LAB_00062c00;
    }
  }
  iVar15 = 0;
LAB_00062c00:
  if (*(char *)((int)param_1 + 9) != '\0') {
    param_1 = param_1 + 3;
    *param_1 = *param_1 + -1;
    if (*param_1 == 0) {
      FUN_000278b0();
    }
  }
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000a9ea0();
  }
  return iVar15;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
MOV ESI,EAX
CALL 0x000a94ff
ADD EDI,0x7b485
SUB ESP,0x4c
MOV EBP,dword ptr [ESI + 0x4]
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x3c],EAX
XOR EAX,EAX
CMP byte ptr [ESI + 0x9],0x0
MOV dword ptr [ESP + 0x10],EDI
MOV EDI,EDX
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESP + 0x8],ECX
MOV dword ptr [ESP + 0xc],EAX
JNZ 0x00062d80
MOVZX EAX,byte ptr [ESI + 0x8]
CMP AL,0x2
JZ 0x00062d40
CMP AL,0x1
JNZ 0x00062bc6
TEST EDI,EDI
JZ 0x00062e08
MOV EDX,dword ptr [ESI]
MOVZX EAX,word ptr [EBP + 0x18]
TEST byte ptr [EDX + 0x1f],0x2
JNZ 0x00062c38
MOV EDX,EAX
AND EDX,0x1
TEST DX,DX
JZ 0x00062c49
TEST EDI,EDI
MOV EBX,0x8
JNZ 0x00062c00
TEST AL,0x80
JZ 0x00062c81
MOV EAX,dword ptr [EBP + 0x50]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
MOV EBX,0x106
JZ 0x00062c81
NOP
CMP byte ptr [ESI + 0x9],0x0
JZ 0x00062c18
SUB dword ptr [ESI + 0xc],0x1
JNZ 0x00062c18
MOV EAX,ESI
CALL 0x000278b0
NOP
LEA ESI,[ESI]
MOV ECX,dword ptr [ESP + 0x3c]
XOR ECX,dword ptr GS:[0x14]
MOV EAX,EBX
JNZ 0x00063329
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,dword ptr [ESP + 0xc]
CMP byte ptr [ECX + 0xe],0x0
JNZ 0x00062bd2
AND EAX,0xfffffffe
MOV word ptr [EBP + 0x18],AX
TEST EDI,EDI
JZ 0x00062be5
CMP byte ptr [EBP + 0x14],0x2
JZ 0x00062bed
TEST AL,0x80
JNZ 0x00062bed
CMP EDI,0x1
JLE 0x00062c81
MOV EAX,dword ptr [EBP + 0x4c]
TEST EAX,EAX
JZ 0x00062c81
MOV EDX,dword ptr [EAX]
CMP ESI,EDX
JZ 0x00062c7a
JMP 0x00062f38
MOV EDX,dword ptr [EAX]
CMP EDX,ESI
JNZ 0x00062f38
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00062c70
MOV ECX,0x1
MOV EDX,0x1
MOV EAX,ESI
CALL 0x0001f420
TEST EAX,EAX
MOV EBX,EAX
JNZ 0x00062c00
MOVZX EAX,word ptr [EBP + 0x18]
MOV EDX,dword ptr [EBP + 0x30]
AND EAX,0xffffffef
TEST EDX,EDX
MOV word ptr [EBP + 0x18],AX
JNZ 0x00062cb5
OR EAX,0x10
MOV word ptr [EBP + 0x18],AX
LEA EAX,[EBP + 0xc]
MOV ECX,dword ptr [EBP + 0xc]
MOV dword ptr [ESP + 0x14],EAX
TEST ECX,ECX
JZ 0x00062d23
TEST EBX,EBX
JNZ 0x00062dc8
TEST EDI,EDI
JZ 0x00062dc8
TEST byte ptr [EBP + 0x18],0x1
JZ 0x00062d90
MOV EBX,0x8
CMP byte ptr [EBP + 0x14],0x0
JNZ 0x00062c00
MOV EAX,dword ptr [ESP + 0x14]
CALL 0x00061fb0
CMP BL,0x5
JNZ 0x00062c00
CMP byte ptr [EBP + 0x14],0x0
JNZ 0x00062c00
SUB ESP,0xc
PUSH EBP
CALL 0x0001f620
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00062c00
MOV ECX,dword ptr [EBP + 0xc]
TEST ECX,ECX
JNZ 0x00062cc3
MOV EAX,dword ptr [EBP]
CALL 0x000622f0
TEST EAX,EAX
MOV EBX,EAX
JZ 0x00062e90
CMP byte ptr [EBP + 0x14],0x0
JNZ 0x00062cf5
JMP 0x00062cec
MOV ECX,dword ptr [ESP + 0x8]
TEST ECX,ECX
JZ 0x00062d59
MOV EAX,dword ptr [EBP + 0xc]
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x28]
BSWAP EAX
MOV dword ptr [ECX],EAX
TEST EDI,EDI
JZ 0x00062d72
MOV EAX,dword ptr [ESI]
MOV EDX,dword ptr [EAX + 0x1d4]
MOV EAX,dword ptr [ESP + 0xc]
CMP EDX,dword ptr [EAX + 0x60]
JG 0x00062e20
XOR EBX,EBX
JMP 0x00062c00
MOV EAX,ESI
CALL 0x00027820
JMP 0x00062bae
MOV ECX,dword ptr [ESP + 0xc]
MOV EBX,dword ptr [ECX + 0x28]
TEST EBX,EBX
JNZ 0x00062e70
MOV EAX,dword ptr [ESI]
CMP byte ptr [EAX + 0x4c],0x2
SETZ byte ptr [ECX + 0x15]
CMP byte ptr [ECX + 0x10],0x1
JZ 0x00062fb0
MOV EBX,dword ptr [EBP + 0x30]
TEST EBX,EBX
JNZ 0x00062dd0
MOV EAX,EBP
CALL 0x00062aa0
MOV EBX,EAX
NOP
LEA ESI,[ESI]
TEST EBX,EBX
JNZ 0x00062d35
CMP byte ptr [ESI + 0x8],0x0
JNZ 0x00062df0
ADD dword ptr [EBP + 0x2c],0x1
CMP byte ptr [ESI + 0x9],0x0
JZ 0x00062df0
MOV byte ptr [ESI + 0x28],0x1
MOV EAX,dword ptr [EBP + 0x4c]
MOV dword ptr [ESI + 0x2c],EAX
LEA EAX,[ESI + 0x20]
MOV dword ptr [EBP + 0x4c],EAX
TEST EDI,EDI
MOVZX EAX,byte ptr [EBP + 0x14]
JNZ 0x00062f40
TEST AL,AL
MOV byte ptr [ESI + 0x8],0x1
JNZ 0x00062e08
MOV byte ptr [EBP + 0x14],0x1
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNZ 0x00062d48
XOR EBX,EBX
JMP 0x00062c00
CMP byte ptr [EAX + 0x6],0x0
JZ 0x00062d72
CALL 0x0002d050
MOV EBX,EAX
JMP 0x00062c00
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX + 0x11]
CMP AL,0x1
JBE 0x00063152
CMP AL,0x5
JZ 0x00063152
CMP EDI,0x1
JLE 0x00063076
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,0x4
CALL 0x000273d0
MOV EBX,EAX
TEST EBX,EBX
JZ 0x00063076
NOP
CMP EBX,0x205
JNZ 0x00062d35
CMP byte ptr [EBP + 0x14],0x0
JZ 0x00063148
MOV EBX,0x205
JMP 0x00062c00
LEA ECX,[ESP + 0x34]
SUB ESP,0xc
MOV EDX,0x1
PUSH 0x0
MOV EAX,EBP
CALL 0x0001f5a0
ADD ESP,0x10
TEST EAX,EAX
MOV EBX,EAX
JNZ 0x00062d35
MOV ECX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [ECX + 0x38]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EAX + 0x1c]
MOV EDX,EAX
BSWAP EDX
MOV EAX,EDX
MOV dword ptr [ESP + 0x18],EDX
MOV EDX,dword ptr [EBP]
MOV dword ptr [ESP + 0x28],EDX
MOV EDX,dword ptr [EDX + 0x18]
MOV dword ptr [ESP + 0x24],EDX
MOV EDX,dword ptr [EBP + 0x4]
MOV EDX,dword ptr [EDX + 0x1c]
AND EDX,0x2000000
TEST EAX,EAX
MOV dword ptr [ESP + 0x20],EDX
JZ 0x00063120
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [EAX + 0x5c]
CMP dword ptr [EAX + 0x18],EDX
JNZ 0x00063120
MOV EDX,dword ptr [ESP + 0x20]
TEST EDX,EDX
JNZ 0x000630a0
MOV EAX,dword ptr [ESP + 0x1c]
CMP dword ptr [EAX],0x694c5153
JZ 0x0006319f
MOV EAX,dword ptr [ECX + 0x48]
MOV EBX,0x1a
CALL 0x00061f80
MOV dword ptr [EBP + 0xc],0x0
JMP 0x00062ce2
MOV EAX,dword ptr [EDX]
JMP 0x00062bf2
CMP AL,0x1
MOV byte ptr [ESI + 0x8],0x2
JBE 0x000633a9
MOVZX EAX,word ptr [EBP + 0x18]
MOV ECX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + 0x50],ESI
AND EAX,0xffffffbf
MOV EDX,EAX
OR EDX,0x40
CMP EDI,0x2
CMOVGE EAX,EDX
MOV word ptr [EBP + 0x18],AX
MOV EAX,dword ptr [ECX + 0x38]
MOV EAX,dword ptr [EAX + 0x1c]
BSWAP EAX
CMP dword ptr [EBP + 0x30],EAX
JZ 0x00062d40
MOV EAX,dword ptr [ECX + 0x48]
MOV dword ptr [ESP + 0x10],ECX
CALL 0x0005f680
TEST EAX,EAX
MOV EBX,EAX
MOV ECX,dword ptr [ESP + 0x10]
JNZ 0x00062c00
MOV EDX,dword ptr [ECX + 0x38]
MOV EAX,dword ptr [EBP + 0x30]
MOV ECX,dword ptr [ESP + 0x8]
BSWAP EAX
TEST ECX,ECX
MOV dword ptr [EDX + 0x1c],EAX
JNZ 0x00062d48
JMP 0x00062d5d
MOV EAX,ECX
MOV ECX,dword ptr [ECX + 0xd4]
TEST ECX,ECX
JZ 0x00062e36
CMP byte ptr [EAX + 0x4],0x0
JZ 0x00063014
CMP byte ptr [ECX + 0x2b],0x0
JNZ 0x00063014
MOVZX EAX,byte ptr [EAX + 0x11]
CMP AL,0x5
JZ 0x00063178
CMP AL,0x3
JBE 0x00063178
MOVSX EAX,word ptr [ECX + 0x28]
MOV EDX,dword ptr [ECX + 0x4]
ADD EAX,0x3
CMP byte ptr [ECX + 0x2b],0x0
JNZ 0x00063006
MOV EBX,dword ptr [EDX]
MOV dword ptr [ESP + 0x18],ECX
PUSH 0x5
PUSH 0x1
PUSH EAX
PUSH EDX
CALL dword ptr [EBX + 0x38]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0xc]
MOV byte ptr [ECX + 0x2b],0x1
MOV ECX,dword ptr [EAX + 0xd4]
CMP byte ptr [ECX + 0x2e],0x0
JNZ 0x00062cdd
CMP byte ptr [ECX + 0x2b],0x0
MOV EAX,dword ptr [ECX + 0x4]
JNZ 0x00063048
MOV EDX,dword ptr [EAX]
MOV dword ptr [ESP + 0x18],ECX
PUSH 0xa
PUSH 0x1
PUSH 0x0
PUSH EAX
CALL dword ptr [EDX + 0x38]
ADD ESP,0x10
TEST EAX,EAX
MOV EBX,EAX
MOV ECX,dword ptr [ESP + 0x18]
JNZ 0x00062e70
MOV EAX,dword ptr [ECX + 0x20]
SUB ESP,0x4
MOV byte ptr [ECX + 0x2c],0x1
PUSH 0x30
PUSH dword ptr [EAX]
LEA EAX,[ECX + 0x34]
MOV dword ptr [ESP + 0x24],ECX
PUSH EAX
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x000164e0
ADD ESP,0x10
TEST EAX,EAX
MOV ECX,dword ptr [ESP + 0x18]
JNZ 0x0006320e
MOV EBX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EBX + 0x18]
MOV byte ptr [EBX + 0x10],0x2
MOV dword ptr [EBX + 0x48],0x0
MOV dword ptr [EBX + 0x4c],0x0
MOV dword ptr [EBX + 0x24],EAX
MOV dword ptr [EBX + 0x20],EAX
MOV dword ptr [EBX + 0x1c],EAX
JMP 0x00062db3
MOV dword ptr [ESP + 0x18],0x0
MOV EAX,dword ptr [EBP + 0x28]
MOV dword ptr [EBP + 0xc],ECX
LEA EDX,[EAX + 0x3fffff4]
MOV EAX,0x80808081
SHL EDX,0x6
MUL EDX
MOV EAX,dword ptr [EBP + 0x28]
SHR EDX,0x7
SUB EDX,0x17
MOV word ptr [ESP + 0x1c],DX
MOV word ptr [EBP + 0x1a],DX
LEA EDX,[EAX + 0x7fffff4]
MOV EAX,0x80808081
SHL EDX,0x5
MUL EDX
SHR EDX,0x7
LEA EAX,[EDX + -0x17]
MOVZX EDX,word ptr [EBP + 0x28]
MOV word ptr [EBP + 0x1c],AX
MOV word ptr [EBP + 0x20],AX
MOV EAX,0x7f
SUB EDX,0x23
MOV word ptr [EBP + 0x1e],DX
MOVZX EDX,word ptr [ESP + 0x1c]
CMP DX,0x80
CMOVC EAX,EDX
MOV byte ptr [EBP + 0x15],AL
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [EBP + 0x30],EAX
JMP 0x00062cbf
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JNZ 0x000630a0
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x000630a0
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x18],EAX
JMP 0x00062f0c
MOV EBX,0x5
JMP 0x00062cec
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,0x2
CALL 0x00027390
CMP EDI,0x1
MOV EBX,EAX
JLE 0x00062e67
TEST EAX,EAX
JNZ 0x00062e67
JMP 0x00062e57
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,0x4
CALL 0x00027390
TEST EAX,EAX
MOV EBX,EAX
JNZ 0x00062e70
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [EAX + 0xd4]
JMP 0x00062fe0
CMP dword ptr [EAX + 0x4],0x66206574
JNZ 0x00062f1c
CMP dword ptr [EAX + 0x8],0x616d726f
JNZ 0x00062f1c
CMP dword ptr [EAX + 0xc],0x332074
JNZ 0x00062f1c
CMP byte ptr [EAX + 0x12],0x2
JBE 0x000631d1
OR word ptr [EBP + 0x18],0x1
MOV EAX,dword ptr [ESP + 0x1c]
CMP byte ptr [EAX + 0x13],0x2
JA 0x00062f1c
JZ 0x00063237
MOV ECX,dword ptr [ESP + 0x1c]
CMP word ptr [ECX + 0x15],0x2040
JZ 0x00063286
MOV EAX,dword ptr [ESP + 0x34]
MOV EBX,0x1a
MOV EAX,dword ptr [EAX + 0x48]
CALL 0x00061f80
MOV dword ptr [EBP + 0xc],0x0
JMP 0x00062ce2
CMP byte ptr [ECX + 0x2b],0x0
MOV EAX,dword ptr [ECX + 0x4]
JNZ 0x0006322e
MOV EDX,dword ptr [EAX]
MOV dword ptr [ESP + 0x18],ECX
PUSH 0x9
PUSH 0x1
PUSH 0x0
PUSH EAX
CALL dword ptr [EDX + 0x38]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x18]
MOV byte ptr [ECX + 0x2c],0x0
JMP 0x00062e7c
TEST byte ptr [EBP + 0x18],0x20
JNZ 0x000631e1
MOV EAX,dword ptr [ESP + 0x28]
LEA EDX,[ESP + 0x38]
MOV dword ptr [ESP + 0x38],0x0
CALL 0x0001799c
TEST EAX,EAX
MOV EDX,EAX
JZ 0x00063377
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x18],EDX
MOV EAX,dword ptr [EAX + 0x48]
CALL 0x00061f80
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [EBP + 0xc],0x0
MOV EBX,EDX
TEST EBX,EBX
JZ 0x00062d1c
JMP 0x00062d35
CMP byte ptr [ECX + 0x17],0x20
JNZ 0x000631f1
MOVZX EDX,byte ptr [ECX + 0x10]
MOVZX EAX,byte ptr [ECX + 0x11]
SHL EDX,0x8
SHL EAX,0x10
OR EDX,EAX
LEA EAX,[EDX + -0x1]
TEST EAX,EDX
JNZ 0x000631f1
LEA EAX,[EDX + 0xfffffeff]
CMP EAX,0xfeff
JA 0x000631f1
MOV EAX,dword ptr [ESP + 0x1c]
OR word ptr [EBP + 0x18],0x2
MOV dword ptr [ESP + 0x2c],EDX
MOVZX EAX,byte ptr [EAX + 0x14]
MOV ECX,EAX
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,EDX
SUB EAX,ECX
CMP EDX,dword ptr [EBP + 0x24]
MOV dword ptr [ESP + 0x20],EAX
JZ 0x0006332e
MOV EAX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [EAX + 0x48]
CALL 0x00061f80
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x2c]
MOV dword ptr [EBP + 0x28],EAX
MOV EAX,dword ptr [EBP + 0x54]
MOV dword ptr [EBP + 0x24],EDX
TEST EAX,EAX
JZ 0x00063313
SUB EAX,0x4
MOV dword ptr [EBP + 0x54],EAX
CALL 0x00026f80
MOV dword ptr [EBP + 0x54],0x0
MOV ECX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EBP]
LEA EDX,[EBP + 0x24]
CALL 0x00041550
MOV EBX,EAX
JMP 0x00063279
CALL 0x000a9ea0
MOV EAX,dword ptr [EBP + 0x4]
MOV EAX,dword ptr [EAX + 0x1c]
AND EAX,0x10000001
SUB EAX,0x1
JZ 0x00063348
MOV ECX,dword ptr [ESP + 0x18]
CMP dword ptr [ESP + 0x24],ECX
JC 0x00063398
MOV EAX,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESP + 0x34]
CMP EAX,0x1df
JBE 0x00062f1c
MOV dword ptr [EBP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0x1c]
CMP dword ptr [EAX + 0x34],0x0
SETNZ byte ptr [EBP + 0x11]
CMP dword ptr [EAX + 0x40],0x0
SETNZ byte ptr [EBP + 0x12]
JMP 0x000630a8
CMP dword ptr [ESP + 0x38],0x0
JNZ 0x000631e1
MOV EAX,dword ptr [ESP + 0x34]
XOR EBX,EBX
MOV EAX,dword ptr [EAX + 0x48]
CALL 0x00061f80
MOV ECX,dword ptr [EBP + 0xc]
JMP 0x00062cbf
MOV EAX,0x10855
CALL 0x000383f0
MOV EDX,EAX
JMP 0x0006325c
MOV byte ptr [EBP + 0x14],0x2
JMP 0x00062f4c
(translation_unit "int __regparm3 FUN_00062b70(int *param_1)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  ushort uVar9;\n  short sVar10;\n  int iVar11;\n  uint uVar12;\n  uint *extraout_ECX;\n  ushort uVar13;\n  int extraout_EDX;\n  uint uVar14;\n  int iVar15;\n  int in_GS_OFFSET;\n  uint local_44;\n  int local_28;\n  \n  FUN_000a94ff();\n  piVar3 = (int *)param_1[1];\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = *piVar3;\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }\n  if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }\n  iVar15 = 0;\nLAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }\n  return iVar15;\n}\n\n" (function_definition "int __regparm3 FUN_00062b70(int *param_1)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  ushort uVar9;\n  short sVar10;\n  int iVar11;\n  uint uVar12;\n  uint *extraout_ECX;\n  ushort uVar13;\n  int extraout_EDX;\n  uint uVar14;\n  int iVar15;\n  int in_GS_OFFSET;\n  uint local_44;\n  int local_28;\n  \n  FUN_000a94ff();\n  piVar3 = (int *)param_1[1];\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = *piVar3;\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }\n  if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }\n  iVar15 = 0;\nLAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }\n  return iVar15;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00062b70(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  ushort uVar9;\n  short sVar10;\n  int iVar11;\n  uint uVar12;\n  uint *extraout_ECX;\n  ushort uVar13;\n  int extraout_EDX;\n  uint uVar14;\n  int iVar15;\n  int in_GS_OFFSET;\n  uint local_44;\n  int local_28;\n  \n  FUN_000a94ff();\n  piVar3 = (int *)param_1[1];\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = *piVar3;\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }\n  if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }\n  iVar15 = 0;\nLAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }\n  return iVar15;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "ushort uVar9;" type_identifier identifier ;) (declaration "short sVar10;" (sized_type_specifier "short" short) identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "ushort uVar13;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "FUN_000a94ff();" (call_expression "FUN_000a94ff()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3 = (int *)param_1[1];" (assignment_expression "piVar3 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(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 "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }" if (parenthesized_expression "(*(char *)((int)param_1 + 9) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 9) != '\0'" (pointer_expression "*(char *)((int)param_1 + 9)" * (cast_expression "(char *)((int)param_1 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 9)" ( (binary_expression "(int)param_1 + 9" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00027820();\n  }" { (expression_statement "FUN_00027820();" (call_expression "FUN_00027820()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }" if (parenthesized_expression "((char)param_1[2] == '\x02')" ( (binary_expression "(char)param_1[2] == '\x02'" (cast_expression "(char)param_1[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }" { (labeled_statement "LAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }" statement_identifier : (if_statement "if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }" if (parenthesized_expression "(extraout_ECX != (uint *)0x0)" ( (binary_expression "extraout_ECX != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }" { (labeled_statement "LAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);" statement_identifier : (expression_statement "uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);" (assignment_expression "uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28)" identifier = (pointer_expression "*(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28)" * (cast_expression "(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(piVar3[3] + 0x38) + 0x28)" ( (binary_expression "*(int *)(piVar3[3] + 0x38) + 0x28" (pointer_expression "*(int *)(piVar3[3] + 0x38)" * (cast_expression "(int *)(piVar3[3] + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[3] + 0x38)" ( (binary_expression "piVar3[3] + 0x38" (subscript_expression "piVar3[3]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "*extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "*extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (pointer_expression "*extraout_ECX" * identifier) = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) }))) (if_statement "if (extraout_EDX != 0) goto LAB_00062d5d;" if (parenthesized_expression "(extraout_EDX != 0)" ( (binary_expression "extraout_EDX != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062d5d;" goto statement_identifier ;)) }) (else_clause "else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }" else (compound_statement "{\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }" { (if_statement "if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }" if (parenthesized_expression "(((char)param_1[2] == '\x01') && (extraout_EDX == 0))" ( (binary_expression "((char)param_1[2] == '\x01') && (extraout_EDX == 0)" (parenthesized_expression "((char)param_1[2] == '\x01')" ( (binary_expression "(char)param_1[2] == '\x01'" (cast_expression "(char)param_1[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }" { (labeled_statement "LAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }" statement_identifier : (if_statement "if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }" if (parenthesized_expression "(extraout_ECX == (uint *)0x0)" ( (binary_expression "extraout_ECX == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00062d48;" goto statement_identifier ;) })) (expression_statement "uVar9 = *(ushort *)(piVar3 + 6);" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6)" identifier = (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) ))))) ;) (if_statement "if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }" if (parenthesized_expression "(((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0'))" ( (binary_expression "((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')" (parenthesized_expression "((*(byte *)(*param_1 + 0x1f) & 2) == 0)" ( (binary_expression "(*(byte *)(*param_1 + 0x1f) & 2) == 0" (parenthesized_expression "(*(byte *)(*param_1 + 0x1f) & 2)" ( (binary_expression "*(byte *)(*param_1 + 0x1f) & 2" (pointer_expression "*(byte *)(*param_1 + 0x1f)" * (cast_expression "(byte *)(*param_1 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x1f)" ( (binary_expression "*param_1 + 0x1f" (pointer_expression "*param_1" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)(iVar4 + 0xe) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0xe) != '\0'" (pointer_expression "*(char *)(iVar4 + 0xe)" * (cast_expression "(char *)(iVar4 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe)" ( (binary_expression "iVar4 + 0xe" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }" { (if_statement "if ((uVar9 & 1) == 0) goto LAB_00062c49;" if (parenthesized_expression "((uVar9 & 1) == 0)" ( (binary_expression "(uVar9 & 1) == 0" (parenthesized_expression "(uVar9 & 1)" ( (binary_expression "uVar9 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00062c49;" goto statement_identifier ;)) (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" identifier = number_literal) ;) (if_statement "if (extraout_EDX != 0) goto LAB_00062c00;" if (parenthesized_expression "(extraout_EDX != 0)" ( (binary_expression "extraout_EDX != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) (labeled_statement "LAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }" statement_identifier : (if_statement "if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }" if (parenthesized_expression "((uVar9 & 0x80) != 0)" ( (binary_expression "(uVar9 & 0x80) != 0" (parenthesized_expression "(uVar9 & 0x80)" ( (binary_expression "uVar9 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }" { (labeled_statement "LAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];" statement_identifier : (expression_statement "iVar11 = *(int *)piVar3[0x14];" (assignment_expression "iVar11 = *(int *)piVar3[0x14]" identifier = (pointer_expression "*(int *)piVar3[0x14]" * (cast_expression "(int *)piVar3[0x14]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x14]" identifier [ number_literal ])))) ;)) (goto_statement "goto LAB_00062bf2;" goto statement_identifier ;) }))) }) (else_clause "else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }" else (compound_statement "{\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }" { (expression_statement "uVar9 = uVar9 & 0xfffe;" (assignment_expression "uVar9 = uVar9 & 0xfffe" identifier = (binary_expression "uVar9 & 0xfffe" identifier & number_literal)) ;) (expression_statement "*(ushort *)(piVar3 + 6) = uVar9;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;" statement_identifier : (if_statement "if (extraout_EDX == 0) goto LAB_00062be5;" if (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062be5;" goto statement_identifier ;))) (if_statement "if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;" if (parenthesized_expression "(((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0))" ( (binary_expression "((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)" (parenthesized_expression "((char)piVar3[5] == '\x02')" ( (binary_expression "(char)piVar3[5] == '\x02'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "((uVar9 & 0x80) != 0)" ( (binary_expression "(uVar9 & 0x80) != 0" (parenthesized_expression "(uVar9 & 0x80)" ( (binary_expression "uVar9 & 0x80" identifier & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00062bed;" goto statement_identifier ;)) (if_statement "if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;" if (parenthesized_expression "((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))" ( (binary_expression "(extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0)" (parenthesized_expression "(extraout_EDX < 2)" ( (binary_expression "extraout_EDX < 2" identifier < number_literal) )) || (parenthesized_expression "(puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0)" ( (comma_expression "puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0" (assignment_expression "puVar5 = (undefined4 *)piVar3[0x13]" identifier = (cast_expression "(undefined4 *)piVar3[0x13]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x13]" identifier [ number_literal ]))) , (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00062c81;" goto statement_identifier ;)) (expression_statement "piVar6 = (int *)*puVar5;" (assignment_expression "piVar6 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (while_statement "while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }" while (parenthesized_expression "(param_1 == piVar6)" ( (binary_expression "param_1 == piVar6" identifier == identifier) )) (compound_statement "{\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }" { (expression_statement "puVar5 = (undefined4 *)puVar5[3];" (assignment_expression "puVar5 = (undefined4 *)puVar5[3]" identifier = (cast_expression "(undefined4 *)puVar5[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062c81;" goto statement_identifier ;)) (expression_statement "piVar6 = (int *)*puVar5;" (assignment_expression "piVar6 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) })) (expression_statement "iVar11 = *piVar6;" (assignment_expression "iVar11 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (labeled_statement "LAB_00062bf2:\n      iVar15 = 0x106;" statement_identifier : (expression_statement "iVar15 = 0x106;" (assignment_expression "iVar15 = 0x106" identifier = number_literal) ;)) (if_statement "if (iVar11 != 0) goto LAB_00062c00;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00062c81:\n    iVar15 = FUN_0001f420();" statement_identifier : (expression_statement "iVar15 = FUN_0001f420();" (assignment_expression "iVar15 = FUN_0001f420()" identifier = (call_expression "FUN_0001f420()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar15 != 0) goto LAB_00062c00;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) (expression_statement "uVar9 = *(ushort *)(piVar3 + 6);" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6)" identifier = (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = (binary_expression "uVar9 & 0xffef" identifier & number_literal)) ;) (if_statement "if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }" if (parenthesized_expression "(piVar3[0xc] == 0)" ( (binary_expression "piVar3[0xc] == 0" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }" { (expression_statement "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = (binary_expression "uVar9 & 0xffef | 0x10" (binary_expression "uVar9 & 0xffef" identifier & number_literal) | number_literal)) ;) })) (expression_statement "iVar11 = piVar3[3];" (assignment_expression "iVar11 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;" statement_identifier : (if_statement "if (iVar11 == 0) goto LAB_00062d23;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062d23;" goto statement_identifier ;))) (labeled_statement "LAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }" statement_identifier : (if_statement "if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }" if (parenthesized_expression "((iVar15 != 0) || (extraout_EDX == 0))" ( (binary_expression "(iVar15 != 0) || (extraout_EDX == 0)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) || (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }" { (labeled_statement "LAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;" statement_identifier : (if_statement "if (iVar15 == 0) goto LAB_00062dd0;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062dd0;" goto statement_identifier ;))) (labeled_statement "LAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;" statement_identifier : (if_statement "if ((char)piVar3[5] != '\0') goto LAB_00062cf5;" if (parenthesized_expression "((char)piVar3[5] != '\0')" ( (binary_expression "(char)piVar3[5] != '\0'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00062cf5;" goto statement_identifier ;))) (labeled_statement "LAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');" statement_identifier : (do_statement "do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');" do (compound_statement "{\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      }" { (expression_statement "FUN_00061fb0();" (call_expression "FUN_00061fb0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;" statement_identifier : (if_statement "if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;" if (parenthesized_expression "((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0))" ( (binary_expression "(((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)" (parenthesized_expression "(((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0'))" ( (binary_expression "((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')" (parenthesized_expression "((char)iVar15 != '\x05')" ( (binary_expression "(char)iVar15 != '\x05'" (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) || (parenthesized_expression "((char)piVar3[5] != '\0')" ( (binary_expression "(char)piVar3[5] != '\0'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(iVar11 = FUN_0001f620(piVar3), iVar11 == 0)" ( (comma_expression "iVar11 = FUN_0001f620(piVar3), iVar11 == 0" (assignment_expression "iVar11 = FUN_0001f620(piVar3)" identifier = (call_expression "FUN_0001f620(piVar3)" identifier (argument_list "(piVar3)" ( identifier )))) , (binary_expression "iVar11 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;))) (labeled_statement "LAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;" statement_identifier : (if_statement "if (piVar3[3] != 0) goto LAB_00062cc3;" if (parenthesized_expression "(piVar3[3] != 0)" ( (binary_expression "piVar3[3] != 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00062cc3;" goto statement_identifier ;))) (labeled_statement "LAB_00062d23:\n        iVar15 = FUN_000622f0();" statement_identifier : (expression_statement "iVar15 = FUN_000622f0();" (assignment_expression "iVar15 = FUN_000622f0()" identifier = (call_expression "FUN_000622f0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;" if (parenthesized_expression "((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0))" ( (binary_expression "(iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar15 = FUN_0001f5a0(0), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0001f5a0(0), iVar15 != 0" (assignment_expression "iVar15 = FUN_0001f5a0(0)" identifier = (call_expression "FUN_0001f5a0(0)" identifier (argument_list "(0)" ( number_literal )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;)) (expression_statement "piVar6 = *(int **)(local_28 + 0x38);" (assignment_expression "piVar6 = *(int **)(local_28 + 0x38)" identifier = (pointer_expression "*(int **)(local_28 + 0x38)" * (cast_expression "(int **)(local_28 + 0x38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_28 + 0x38)" ( (binary_expression "local_28 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = piVar6[7];" (assignment_expression "uVar7 = piVar6[7]" identifier = (subscript_expression "piVar6[7]" identifier [ number_literal ])) ;) (expression_statement "local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" identifier = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar7 = *(uint *)(*piVar3 + 0x18);" (assignment_expression "uVar7 = *(uint *)(*piVar3 + 0x18)" identifier = (pointer_expression "*(uint *)(*piVar3 + 0x18)" * (cast_expression "(uint *)(*piVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + 0x18)" ( (binary_expression "*piVar3 + 0x18" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;" (assignment_expression "uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000" identifier = (binary_expression "*(uint *)(piVar3[1] + 0x1c) & 0x2000000" (pointer_expression "*(uint *)(piVar3[1] + 0x1c)" * (cast_expression "(uint *)(piVar3[1] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[1] + 0x1c)" ( (binary_expression "piVar3[1] + 0x1c" (subscript_expression "piVar3[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal)) ;) (if_statement "if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" if (parenthesized_expression "((local_44 == 0) || (piVar6[6] != piVar6[0x17]))" ( (binary_expression "(local_44 == 0) || (piVar6[6] != piVar6[0x17])" (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar6[6] != piVar6[0x17])" ( (binary_expression "piVar6[6] != piVar6[0x17]" (subscript_expression "piVar6[6]" identifier [ number_literal ]) != (subscript_expression "piVar6[0x17]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }" { (if_statement "if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;" if (parenthesized_expression "((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0))" ( (binary_expression "(uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)" (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_44 = uVar7, uVar7 == 0)" ( (comma_expression "local_44 = uVar7, uVar7 == 0" (assignment_expression "local_44 = uVar7" identifier = identifier) , (binary_expression "uVar7 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_000630a0;" goto statement_identifier ;)) }) (else_clause "else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" else (if_statement "if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" { (labeled_statement "LAB_000630a0:\n          local_44 = 0;" statement_identifier : (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_000630a8;" goto statement_identifier ;) })))) (if_statement "if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;" if (parenthesized_expression "((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074))" ( (binary_expression "(((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)" (parenthesized_expression "(((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f))" ( (binary_expression "((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)" (parenthesized_expression "((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574))" ( (binary_expression "(*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)" (parenthesized_expression "(*piVar6 != 0x694c5153)" ( (binary_expression "*piVar6 != 0x694c5153" (pointer_expression "*piVar6" * identifier) != number_literal) )) || (parenthesized_expression "(piVar6[1] != 0x66206574)" ( (binary_expression "piVar6[1] != 0x66206574" (subscript_expression "piVar6[1]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(piVar6[2] != 0x616d726f)" ( (binary_expression "piVar6[2] != 0x616d726f" (subscript_expression "piVar6[2]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(piVar6[3] != 0x332074)" ( (binary_expression "piVar6[3] != 0x332074" (subscript_expression "piVar6[3]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_00062f1c;" goto statement_identifier ;)) (if_statement "if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }" if (parenthesized_expression "(2 < *(byte *)((int)piVar6 + 0x12))" ( (binary_expression "2 < *(byte *)((int)piVar6 + 0x12)" number_literal < (pointer_expression "*(byte *)((int)piVar6 + 0x12)" * (cast_expression "(byte *)((int)piVar6 + 0x12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x12)" ( (binary_expression "(int)piVar6 + 0x12" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }" { (expression_statement "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;" (assignment_expression "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = (binary_expression "*(ushort *)(piVar3 + 6) | 1" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;" if (parenthesized_expression "(2 < *(byte *)((int)piVar6 + 0x13))" ( (binary_expression "2 < *(byte *)((int)piVar6 + 0x13)" number_literal < (pointer_expression "*(byte *)((int)piVar6 + 0x13)" * (cast_expression "(byte *)((int)piVar6 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x13)" ( (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00062f1c;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }" if (parenthesized_expression "((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0))" ( (binary_expression "(*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)" (parenthesized_expression "(*(byte *)((int)piVar6 + 0x13) == 2)" ( (binary_expression "*(byte *)((int)piVar6 + 0x13) == 2" (pointer_expression "*(byte *)((int)piVar6 + 0x13)" * (cast_expression "(byte *)((int)piVar6 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x13)" ( (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(piVar3 + 6) & 0x20) == 0)" ( (binary_expression "(*(byte *)(piVar3 + 6) & 0x20) == 0" (parenthesized_expression "(*(byte *)(piVar3 + 6) & 0x20)" ( (binary_expression "*(byte *)(piVar3 + 6) & 0x20" (pointer_expression "*(byte *)(piVar3 + 6)" * (cast_expression "(byte *)(piVar3 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }" { (expression_statement "iVar15 = FUN_0001799c();" (assignment_expression "iVar15 = FUN_0001799c()" identifier = (call_expression "FUN_0001799c()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = piVar3[3];" (assignment_expression "iVar11 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062cbf;" goto statement_identifier ;) })) (labeled_statement "LAB_0006325c:\n          FUN_00061f80();" statement_identifier : (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;)) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;" statement_identifier : (if_statement "if (iVar15 != 0) goto LAB_00062d35;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;))) (goto_statement "goto LAB_00062d1c;" goto statement_identifier ;) })) (if_statement "if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }" if (parenthesized_expression "(((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101))))" ( (binary_expression "((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))" (parenthesized_expression "((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))" ( (binary_expression "(*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' ')" (parenthesized_expression "(*(short *)((int)piVar6 + 0x15) != 0x2040)" ( (binary_expression "*(short *)((int)piVar6 + 0x15) != 0x2040" (pointer_expression "*(short *)((int)piVar6 + 0x15)" * (cast_expression "(short *)((int)piVar6 + 0x15)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x15)" ( (binary_expression "(int)piVar6 + 0x15" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)((int)piVar6 + 0x17) != ' ')" ( (binary_expression "*(char *)((int)piVar6 + 0x17) != ' '" (pointer_expression "*(char *)((int)piVar6 + 0x17)" * (cast_expression "(char *)((int)piVar6 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x17)" ( (binary_expression "(int)piVar6 + 0x17" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "' '" ' character ')) ))) )) || (parenthesized_expression "((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))" ( (parenthesized_expression "(uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101))" ( (comma_expression "uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)" (assignment_expression "uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10" identifier = (binary_expression "(uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10" (binary_expression "(uint)*(byte *)(piVar6 + 4) << 8" (binary_expression "(uint)*(byte *)(piVar6 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(piVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 4)" ( (binary_expression "piVar6 + 4" identifier + number_literal) )))) << number_literal) | (binary_expression "(uint)*(byte *)((int)piVar6 + 0x11) << 0x10" (binary_expression "(uint)*(byte *)((int)piVar6 + 0x11)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)piVar6 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x11)" ( (binary_expression "(int)piVar6 + 0x11" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal))) , (binary_expression "(uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)" (binary_expression "(uVar14 - 1 & uVar14) != 0" (parenthesized_expression "(uVar14 - 1 & uVar14)" ( (binary_expression "uVar14 - 1 & uVar14" (binary_expression "uVar14 - 1" identifier - number_literal) & identifier) )) != number_literal) || (parenthesized_expression "(0xfeff < uVar14 - 0x101)" ( (binary_expression "0xfeff < uVar14 - 0x101" number_literal < (binary_expression "uVar14 - 0x101" identifier - number_literal)) )))) )) ))) )) (compound_statement "{\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }" { (expression_statement "iVar15 = 0x1a;" (assignment_expression "iVar15 = 0x1a" identifier = number_literal) ;) (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00062ce2;" goto statement_identifier ;) })) (expression_statement "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;" (assignment_expression "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = (binary_expression "*(ushort *)(piVar3 + 6) | 2" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "uVar12 = uVar14 - *(byte *)(piVar6 + 5);" (assignment_expression "uVar12 = uVar14 - *(byte *)(piVar6 + 5)" identifier = (binary_expression "uVar14 - *(byte *)(piVar6 + 5)" identifier - (pointer_expression "*(byte *)(piVar6 + 5)" * (cast_expression "(byte *)(piVar6 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 5)" ( (binary_expression "piVar6 + 5" identifier + number_literal) )))))) ;) (if_statement "if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }" if (parenthesized_expression "(uVar14 != piVar3[9])" ( (binary_expression "uVar14 != piVar3[9]" identifier != (subscript_expression "piVar3[9]" identifier [ number_literal ])) )) (compound_statement "{\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }" { (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3[10] = uVar12;" (assignment_expression "piVar3[10] = uVar12" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[9] = uVar14;" (assignment_expression "piVar3[9] = uVar14" (subscript_expression "piVar3[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }" if (parenthesized_expression "(piVar3[0x15] != 0)" ( (binary_expression "piVar3[0x15] != 0" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }" { (expression_statement "piVar3[0x15] = piVar3[0x15] + -4;" (assignment_expression "piVar3[0x15] = piVar3[0x15] + -4" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) = (binary_expression "piVar3[0x15] + -4" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "FUN_00026f80();" (call_expression "FUN_00026f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3[0x15] = 0;" (assignment_expression "piVar3[0x15] = 0" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar15 = FUN_00041550();" (assignment_expression "iVar15 = FUN_00041550()" identifier = (call_expression "FUN_00041550()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00063279;" goto statement_identifier ;) })) (if_statement "if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }" if (parenthesized_expression "(((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44))" ( (binary_expression "((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)" (parenthesized_expression "((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1)" ( (binary_expression "(*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1" (parenthesized_expression "(*(uint *)(piVar3[1] + 0x1c) & 0x10000001)" ( (binary_expression "*(uint *)(piVar3[1] + 0x1c) & 0x10000001" (pointer_expression "*(uint *)(piVar3[1] + 0x1c)" * (cast_expression "(uint *)(piVar3[1] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[1] + 0x1c)" ( (binary_expression "piVar3[1] + 0x1c" (subscript_expression "piVar3[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar7 < local_44)" ( (binary_expression "uVar7 < local_44" identifier < identifier) ))) )) (compound_statement "{\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }" { (expression_statement "iVar15 = FUN_000383f0();" (assignment_expression "iVar15 = FUN_000383f0()" identifier = (call_expression "FUN_000383f0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0006325c;" goto statement_identifier ;) })) (if_statement "if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }" if (parenthesized_expression "(0x1df < uVar12)" ( (binary_expression "0x1df < uVar12" number_literal < identifier) )) (compound_statement "{\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }" { (expression_statement "piVar3[10] = uVar12;" (assignment_expression "piVar3[10] = uVar12" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;" (assignment_expression "*(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0" (pointer_expression "*(bool *)((int)piVar3 + 0x11)" * (cast_expression "(bool *)((int)piVar3 + 0x11)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x11)" ( (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar6[0xd] != 0" (subscript_expression "piVar6[0xd]" identifier [ number_literal ]) != number_literal)) ;) (expression_statement "*(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;" (assignment_expression "*(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0" (pointer_expression "*(bool *)((int)piVar3 + 0x12)" * (cast_expression "(bool *)((int)piVar3 + 0x12)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x12)" ( (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar6[0x10] != 0" (subscript_expression "piVar6[0x10]" identifier [ number_literal ]) != number_literal)) ;) (labeled_statement "LAB_000630a8:\n          piVar3[3] = local_28;" statement_identifier : (expression_statement "piVar3[3] = local_28;" (assignment_expression "piVar3[3] = local_28" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;" (assignment_expression "uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17" identifier = (binary_expression "(short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17" (cast_expression "(short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff)" ( (binary_expression "(uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff" (call_expression "(uint)((piVar3[10] + 0x3fffff4) * 0x40)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar3[10] + 0x3fffff4) * 0x40)" ( (binary_expression "(piVar3[10] + 0x3fffff4) * 0x40" (parenthesized_expression "(piVar3[10] + 0x3fffff4)" ( (binary_expression "piVar3[10] + 0x3fffff4" (subscript_expression "piVar3[10]" identifier [ number_literal ]) + number_literal) )) * number_literal) ))) / number_literal) ))) - number_literal)) ;) (expression_statement "*(ushort *)((int)piVar3 + 0x1a) = uVar13;" (assignment_expression "*(ushort *)((int)piVar3 + 0x1a) = uVar13" (pointer_expression "*(ushort *)((int)piVar3 + 0x1a)" * (cast_expression "(ushort *)((int)piVar3 + 0x1a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x1a)" ( (binary_expression "(int)piVar3 + 0x1a" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;" (assignment_expression "sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17" identifier = (binary_expression "(short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17" (cast_expression "(short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff)" ( (binary_expression "(uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff" (call_expression "(uint)((piVar3[10] + 0x7fffff4) * 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar3[10] + 0x7fffff4) * 0x20)" ( (binary_expression "(piVar3[10] + 0x7fffff4) * 0x20" (parenthesized_expression "(piVar3[10] + 0x7fffff4)" ( (binary_expression "piVar3[10] + 0x7fffff4" (subscript_expression "piVar3[10]" identifier [ number_literal ]) + number_literal) )) * number_literal) ))) / number_literal) ))) + number_literal)) ;) (expression_statement "*(short *)(piVar3 + 7) = sVar10;" (assignment_expression "*(short *)(piVar3 + 7) = sVar10" (pointer_expression "*(short *)(piVar3 + 7)" * (cast_expression "(short *)(piVar3 + 7)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 7)" ( (binary_expression "piVar3 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(short *)(piVar3 + 8) = sVar10;" (assignment_expression "*(short *)(piVar3 + 8) = sVar10" (pointer_expression "*(short *)(piVar3 + 8)" * (cast_expression "(short *)(piVar3 + 8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 8)" ( (binary_expression "piVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;" (assignment_expression "*(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23" (pointer_expression "*(short *)((int)piVar3 + 0x1e)" * (cast_expression "(short *)((int)piVar3 + 0x1e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x1e)" ( (binary_expression "(int)piVar3 + 0x1e" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(short)piVar3[10] + -0x23" (cast_expression "(short)piVar3[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar3[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "uVar9 = 0x7f;" (assignment_expression "uVar9 = 0x7f" identifier = number_literal) ;) (if_statement "if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }" if (parenthesized_expression "(uVar13 < 0x80)" ( (binary_expression "uVar13 < 0x80" identifier < number_literal) )) (compound_statement "{\n            uVar9 = uVar13;\n          }" { (expression_statement "uVar9 = uVar13;" (assignment_expression "uVar9 = uVar13" identifier = identifier) ;) })) (expression_statement "*(char *)((int)piVar3 + 0x15) = (char)uVar9;" (assignment_expression "*(char *)((int)piVar3 + 0x15) = (char)uVar9" (pointer_expression "*(char *)((int)piVar3 + 0x15)" * (cast_expression "(char *)((int)piVar3 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x15)" ( (binary_expression "(int)piVar3 + 0x15" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "piVar3[0xc] = local_44;" (assignment_expression "piVar3[0xc] = local_44" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = local_28;" (assignment_expression "iVar11 = local_28" identifier = identifier) ;) (goto_statement "goto LAB_00062cbf;" goto statement_identifier ;) })) (labeled_statement "LAB_00062f1c:\n        iVar15 = 0x1a;" statement_identifier : (expression_statement "iVar15 = 0x1a;" (assignment_expression "iVar15 = 0x1a" identifier = number_literal) ;)) (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00062ce2:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "((char)piVar3[5] == '\0')" ( (binary_expression "(char)piVar3[5] == '\0'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) ;)) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) }))) (if_statement "if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;" if (parenthesized_expression "((*(byte *)(piVar3 + 6) & 1) != 0)" ( (binary_expression "(*(byte *)(piVar3 + 6) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar3 + 6) & 1)" ( (binary_expression "*(byte *)(piVar3 + 6) & 1" (pointer_expression "*(byte *)(piVar3 + 6)" * (cast_expression "(byte *)(piVar3 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00062cdd;" goto statement_identifier ;)) (expression_statement "iVar15 = *(int *)(iVar4 + 0x28);" (assignment_expression "iVar15 = *(int *)(iVar4 + 0x28)" identifier = (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }" { (labeled_statement "LAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;" statement_identifier : (if_statement "if (iVar15 != 0x205) goto LAB_00062d35;" if (parenthesized_expression "(iVar15 != 0x205)" ( (binary_expression "iVar15 != 0x205" identifier != number_literal) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;))) (labeled_statement "LAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }" statement_identifier : (if_statement "if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }" if (parenthesized_expression "((char)piVar3[5] == '\0')" ( (binary_expression "(char)piVar3[5] == '\0'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00062cec;" goto statement_identifier ;) }))) (expression_statement "iVar15 = 0x205;" (assignment_expression "iVar15 = 0x205" identifier = number_literal) ;) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) })) (expression_statement "*(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';" (assignment_expression "*(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02'" (pointer_expression "*(bool *)(iVar4 + 0x15)" * (cast_expression "(bool *)(iVar4 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x15)" ( (binary_expression "iVar4 + 0x15" identifier + number_literal) )))) = (binary_expression "*(char *)(*param_1 + 0x4c) == '\x02'" (pointer_expression "*(char *)(*param_1 + 0x4c)" * (cast_expression "(char *)(*param_1 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x4c)" ( (binary_expression "*param_1 + 0x4c" (pointer_expression "*param_1" * identifier) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence '))) ;) (if_statement "if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }" if (parenthesized_expression "(*(char *)(iVar4 + 0x10) == '\x01')" ( (binary_expression "*(char *)(iVar4 + 0x10) == '\x01'" (pointer_expression "*(char *)(iVar4 + 0x10)" * (cast_expression "(char *)(iVar4 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }" { (expression_statement "iVar11 = *(int *)(iVar4 + 0xd4);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0xd4)" identifier = (pointer_expression "*(int *)(iVar4 + 0xd4)" * (cast_expression "(int *)(iVar4 + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd4)" ( (binary_expression "iVar4 + 0xd4" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }" { (if_statement "if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }" if (parenthesized_expression "((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0'))" ( (binary_expression "(*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')" (parenthesized_expression "(*(char *)(iVar4 + 4) != '\0')" ( (binary_expression "*(char *)(iVar4 + 4) != '\0'" (pointer_expression "*(char *)(iVar4 + 4)" * (cast_expression "(char *)(iVar4 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" * (cast_expression "(char *)(iVar11 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }" { (if_statement "if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4))" ( (binary_expression "(*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)" (parenthesized_expression "(*(byte *)(iVar4 + 0x11) == 5)" ( (binary_expression "*(byte *)(iVar4 + 0x11) == 5" (pointer_expression "*(byte *)(iVar4 + 0x11)" * (cast_expression "(byte *)(iVar4 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11)" ( (binary_expression "iVar4 + 0x11" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(byte *)(iVar4 + 0x11) < 4)" ( (binary_expression "*(byte *)(iVar4 + 0x11) < 4" (pointer_expression "*(byte *)(iVar4 + 0x11)" * (cast_expression "(byte *)(iVar4 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11)" ( (binary_expression "iVar4 + 0x11" identifier + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }" { (expression_statement "iVar15 = FUN_00027390();" (assignment_expression "iVar15 = FUN_00027390()" identifier = (call_expression "FUN_00027390()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) goto LAB_00062e70;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062e70;" goto statement_identifier ;)) (expression_statement "iVar11 = *(int *)(iVar4 + 0xd4);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0xd4)" identifier = (pointer_expression "*(int *)(iVar4 + 0xd4)" * (cast_expression "(int *)(iVar4 + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd4)" ( (binary_expression "iVar4 + 0xd4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }" if (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" * (cast_expression "(char *)(iVar11 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }" { (expression_statement "(**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);" (call_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5)" (parenthesized_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))" ( (pointer_expression "**(code **)(**(int **)(iVar11 + 4) + 0x38)" * (pointer_expression "*(code **)(**(int **)(iVar11 + 4) + 0x38)" * (cast_expression "(code **)(**(int **)(iVar11 + 4) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar11 + 4) + 0x38)" ( (binary_expression "**(int **)(iVar11 + 4) + 0x38" (pointer_expression "**(int **)(iVar11 + 4)" * (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5)" ( (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) , (binary_expression "*(short *)(iVar11 + 0x28) + 3" (pointer_expression "*(short *)(iVar11 + 0x28)" * (cast_expression "(short *)(iVar11 + 0x28)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) + number_literal) , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)(iVar11 + 0x2b) = 1;" (assignment_expression "*(undefined1 *)(iVar11 + 0x2b) = 1" (pointer_expression "*(undefined1 *)(iVar11 + 0x2b)" * (cast_expression "(undefined1 *)(iVar11 + 0x2b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = *(int *)(iVar4 + 0xd4);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0xd4)" identifier = (pointer_expression "*(int *)(iVar4 + 0xd4)" * (cast_expression "(int *)(iVar4 + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd4)" ( (binary_expression "iVar4 + 0xd4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }" if (parenthesized_expression "(*(char *)(iVar11 + 0x2e) != '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2e) != '\0'" (pointer_expression "*(char *)(iVar11 + 0x2e)" * (cast_expression "(char *)(iVar11 + 0x2e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2e)" ( (binary_expression "iVar11 + 0x2e" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }" { (labeled_statement "LAB_00062cdd:\n          iVar15 = 8;" statement_identifier : (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" identifier = number_literal) ;)) (goto_statement "goto LAB_00062ce2;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;" if (parenthesized_expression "((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0))" ( (binary_expression "(*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)" (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" * (cast_expression "(char *)(iVar11 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)" ( (comma_expression "iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0" (assignment_expression "iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10)" identifier = (call_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10)" (parenthesized_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))" ( (pointer_expression "**(code **)(**(int **)(iVar11 + 4) + 0x38)" * (pointer_expression "*(code **)(**(int **)(iVar11 + 4) + 0x38)" * (cast_expression "(code **)(**(int **)(iVar11 + 4) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar11 + 4) + 0x38)" ( (binary_expression "**(int **)(iVar11 + 4) + 0x38" (pointer_expression "**(int **)(iVar11 + 4)" * (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar11 + 4),0,1,10)" ( (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00062e70;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(iVar11 + 0x2c) = 1;" (assignment_expression "*(undefined1 *)(iVar11 + 0x2c) = 1" (pointer_expression "*(undefined1 *)(iVar11 + 0x2c)" * (cast_expression "(undefined1 *)(iVar11 + 0x2c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2c)" ( (binary_expression "iVar11 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);" (assignment_expression "iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30)" identifier = (call_expression "memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30)" identifier (argument_list "((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30)" ( (cast_expression "(void *)(iVar11 + 0x34)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x34)" ( (binary_expression "iVar11 + 0x34" identifier + number_literal) ))) , (cast_expression "(void *)**(undefined4 **)(iVar11 + 0x20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar11 + 0x20)" * (pointer_expression "*(undefined4 **)(iVar11 + 0x20)" * (cast_expression "(undefined4 **)(iVar11 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) )))))) , number_literal )))) ;) (if_statement "if (iVar15 == 0) goto LAB_00063076;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00063076;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }" if (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" * (cast_expression "(char *)(iVar11 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }" { (expression_statement "(**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);" (call_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9)" (parenthesized_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))" ( (pointer_expression "**(code **)(**(int **)(iVar11 + 4) + 0x38)" * (pointer_expression "*(code **)(**(int **)(iVar11 + 4) + 0x38)" * (cast_expression "(code **)(**(int **)(iVar11 + 4) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar11 + 4) + 0x38)" ( (binary_expression "**(int **)(iVar11 + 4) + 0x38" (pointer_expression "**(int **)(iVar11 + 4)" * (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar11 + 4),0,1,9)" ( (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)(iVar11 + 0x2c) = 0;" (assignment_expression "*(undefined1 *)(iVar11 + 0x2c) = 0" (pointer_expression "*(undefined1 *)(iVar11 + 0x2c)" * (cast_expression "(undefined1 *)(iVar11 + 0x2c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2c)" ( (binary_expression "iVar11 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00062e7c;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5))" ( (binary_expression "(*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)" (parenthesized_expression "(*(byte *)(iVar4 + 0x11) < 2)" ( (binary_expression "*(byte *)(iVar4 + 0x11) < 2" (pointer_expression "*(byte *)(iVar4 + 0x11)" * (cast_expression "(byte *)(iVar4 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11)" ( (binary_expression "iVar4 + 0x11" identifier + number_literal) )))) < number_literal) )) || (parenthesized_expression "(*(byte *)(iVar4 + 0x11) == 5)" ( (binary_expression "*(byte *)(iVar4 + 0x11) == 5" (pointer_expression "*(byte *)(iVar4 + 0x11)" * (cast_expression "(byte *)(iVar4 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11)" ( (binary_expression "iVar4 + 0x11" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }" { (expression_statement "iVar15 = FUN_00027390();" (assignment_expression "iVar15 = FUN_00027390()" identifier = (call_expression "FUN_00027390()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;" if (parenthesized_expression "((1 < extraout_EDX) && (iVar15 == 0))" ( (binary_expression "(1 < extraout_EDX) && (iVar15 == 0)" (parenthesized_expression "(1 < extraout_EDX)" ( (binary_expression "1 < extraout_EDX" number_literal < identifier) )) && (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00062e57;" goto statement_identifier ;)) (labeled_statement "LAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;" statement_identifier : (if_statement "if (iVar15 != 0) goto LAB_00062e70;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062e70;" goto statement_identifier ;))) }) (else_clause "else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" else (if_statement "if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" if (parenthesized_expression "(1 < extraout_EDX)" ( (binary_expression "1 < extraout_EDX" number_literal < identifier) )) (compound_statement "{\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" { (labeled_statement "LAB_00062e57:\n        iVar15 = FUN_000273d0();" statement_identifier : (expression_statement "iVar15 = FUN_000273d0();" (assignment_expression "iVar15 = FUN_000273d0()" identifier = (call_expression "FUN_000273d0()" identifier (argument_list "()" ( )))) ;)) (goto_statement "goto LAB_00062e67;" goto statement_identifier ;) })))) (labeled_statement "LAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);" statement_identifier : (expression_statement "uVar8 = *(undefined4 *)(iVar4 + 0x18);" (assignment_expression "uVar8 = *(undefined4 *)(iVar4 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined1 *)(iVar4 + 0x10) = 2;" (assignment_expression "*(undefined1 *)(iVar4 + 0x10) = 2" (pointer_expression "*(undefined1 *)(iVar4 + 0x10)" * (cast_expression "(undefined1 *)(iVar4 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x48) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x48) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x48)" * (cast_expression "(undefined4 *)(iVar4 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x4c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x4c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x4c)" * (cast_expression "(undefined4 *)(iVar4 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x24) = uVar8;" (assignment_expression "*(undefined4 *)(iVar4 + 0x24) = uVar8" (pointer_expression "*(undefined4 *)(iVar4 + 0x24)" * (cast_expression "(undefined4 *)(iVar4 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x20) = uVar8;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = uVar8" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar4 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }" if (parenthesized_expression "(piVar3[0xc] == 0)" ( (binary_expression "piVar3[0xc] == 0" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }" { (expression_statement "iVar15 = FUN_00062aa0();" (assignment_expression "iVar15 = FUN_00062aa0()" identifier = (call_expression "FUN_00062aa0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00062dc8;" goto statement_identifier ;) })) (labeled_statement "LAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }" statement_identifier : (if_statement "if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }" if (parenthesized_expression "(((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0'))" ( (binary_expression "((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')" (parenthesized_expression "((char)param_1[2] == '\0')" ( (binary_expression "(char)param_1[2] == '\0'" (cast_expression "(char)param_1[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')" ( (comma_expression "piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0'" (assignment_expression "piVar3[0xb] = piVar3[0xb] + 1" (subscript_expression "piVar3[0xb]" identifier [ number_literal ]) = (binary_expression "piVar3[0xb] + 1" (subscript_expression "piVar3[0xb]" identifier [ number_literal ]) + number_literal)) , (binary_expression "*(char *)((int)param_1 + 9) != '\0'" (pointer_expression "*(char *)((int)param_1 + 9)" * (cast_expression "(char *)((int)param_1 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 9)" ( (binary_expression "(int)param_1 + 9" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }" { (expression_statement "*(undefined1 *)(param_1 + 10) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 10) = 1" (pointer_expression "*(undefined1 *)(param_1 + 10)" * (cast_expression "(undefined1 *)(param_1 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xb] = piVar3[0x13];" (assignment_expression "param_1[0xb] = piVar3[0x13]" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x13]" identifier [ number_literal ])) ;) (expression_statement "piVar3[0x13] = (int)(param_1 + 8);" (assignment_expression "piVar3[0x13] = (int)(param_1 + 8)" (subscript_expression "piVar3[0x13]" identifier [ number_literal ]) = (cast_expression "(int)(param_1 + 8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ;) }))) (expression_statement "bVar2 = *(byte *)(piVar3 + 5);" (assignment_expression "bVar2 = *(byte *)(piVar3 + 5)" identifier = (pointer_expression "*(byte *)(piVar3 + 5)" * (cast_expression "(byte *)(piVar3 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 5)" ( (binary_expression "piVar3 + 5" identifier + number_literal) ))))) ;) (if_statement "if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }" if (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 2) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 2) = 1" (pointer_expression "*(undefined1 *)(param_1 + 2)" * (cast_expression "(undefined1 *)(param_1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }" { (expression_statement "*(undefined1 *)(piVar3 + 5) = 1;" (assignment_expression "*(undefined1 *)(piVar3 + 5) = 1" (pointer_expression "*(undefined1 *)(piVar3 + 5)" * (cast_expression "(undefined1 *)(piVar3 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 5)" ( (binary_expression "piVar3 + 5" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_00062e08;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(param_1 + 2) = 2;" (assignment_expression "*(undefined1 *)(param_1 + 2) = 2" (pointer_expression "*(undefined1 *)(param_1 + 2)" * (cast_expression "(undefined1 *)(param_1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }" if (parenthesized_expression "(bVar2 < 2)" ( (binary_expression "bVar2 < 2" identifier < number_literal) )) (compound_statement "{\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }" { (expression_statement "*(undefined1 *)(piVar3 + 5) = 2;" (assignment_expression "*(undefined1 *)(piVar3 + 5) = 2" (pointer_expression "*(undefined1 *)(piVar3 + 5)" * (cast_expression "(undefined1 *)(piVar3 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 5)" ( (binary_expression "piVar3 + 5" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "iVar11 = piVar3[3];" (assignment_expression "iVar11 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "piVar3[0x14] = (int)param_1;" (assignment_expression "piVar3[0x14] = (int)param_1" (subscript_expression "piVar3[0x14]" identifier [ number_literal ]) = (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf" identifier = (binary_expression "*(ushort *)(piVar3 + 6) & 0xffbf" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }" if (parenthesized_expression "(1 < extraout_EDX)" ( (binary_expression "1 < extraout_EDX" number_literal < identifier) )) (compound_statement "{\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }" { (expression_statement "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40" identifier = (binary_expression "*(ushort *)(piVar3 + 6) & 0xffbf | 0x40" (binary_expression "*(ushort *)(piVar3 + 6) & 0xffbf" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "*(ushort *)(piVar3 + 6) = uVar9;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);" (assignment_expression "uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" * (cast_expression "(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(iVar11 + 0x38) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x38)" * (cast_expression "(int *)(iVar11 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x38)" ( (binary_expression "iVar11 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;" if (parenthesized_expression "(piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))" ( (binary_expression "piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18)" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) == (parenthesized_expression "(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18)" ( (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal)) ))) )) (goto_statement "goto LAB_00062d40;" goto statement_identifier ;)) (expression_statement "iVar15 = FUN_0005f680();" (assignment_expression "iVar15 = FUN_0005f680()" identifier = (call_expression "FUN_0005f680()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) goto LAB_00062c00;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) (expression_statement "uVar7 = piVar3[0xc];" (assignment_expression "uVar7 = piVar3[0xc]" identifier = (subscript_expression "piVar3[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" * (cast_expression "(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(iVar11 + 0x38) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x38)" * (cast_expression "(int *)(iVar11 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x38)" ( (binary_expression "iVar11 + 0x38" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) (if_statement "if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;" if (parenthesized_expression "(extraout_ECX != (uint *)0x0)" ( (binary_expression "extraout_ECX != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062d48;" goto statement_identifier ;)) (labeled_statement "LAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }" statement_identifier : (if_statement "if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }" if (parenthesized_expression "((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0'))" ( (binary_expression "(*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')" (parenthesized_expression "(*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4))" ( (binary_expression "*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) < (pointer_expression "*(int *)(*param_1 + 0x1d4)" * (cast_expression "(int *)(*param_1 + 0x1d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x1d4)" ( (binary_expression "*param_1 + 0x1d4" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) && (parenthesized_expression "(*(char *)(iVar4 + 6) != '\0')" ( (binary_expression "*(char *)(iVar4 + 6) != '\0'" (pointer_expression "*(char *)(iVar4 + 6)" * (cast_expression "(char *)(iVar4 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 6)" ( (binary_expression "iVar4 + 6" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }" { (expression_statement "iVar15 = FUN_0002d050();" (assignment_expression "iVar15 = FUN_0002d050()" identifier = (call_expression "FUN_0002d050()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) }))) }))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }" statement_identifier : (if_statement "if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }" if (parenthesized_expression "(*(char *)((int)param_1 + 9) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 9) != '\0'" (pointer_expression "*(char *)((int)param_1 + 9)" * (cast_expression "(char *)((int)param_1 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 9)" ( (binary_expression "(int)param_1 + 9" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }" { (expression_statement "param_1 = param_1 + 3;" (assignment_expression "param_1 = param_1 + 3" identifier = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "*param_1 = *param_1 + -1;" (assignment_expression "*param_1 = *param_1 + -1" (pointer_expression "*param_1" * identifier) = (binary_expression "*param_1 + -1" (pointer_expression "*param_1" * identifier) + number_literal)) ;) (if_statement "if (*param_1 == 0) {\n      FUN_000278b0();\n    }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n      FUN_000278b0();\n    }" { (expression_statement "FUN_000278b0();" (call_expression "FUN_000278b0()" identifier (argument_list "()" ( ))) ;) })) }))) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(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                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }" { comment (expression_statement "FUN_000a9ea0();" (call_expression "FUN_000a9ea0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar15;" return identifier ;) })))
(translation_unit "int __regparm3 sqlite3BtreeBeginTrans(Btree *p,int wrflag,int *pSchemaVersion)\n\n{\n  byte bVar1;\n  BtShared *pBt;\n  Pager *pPager;\n  BtLock *pBVar2;\n  Btree *pBVar3;\n  int *piVar4;\n  uint uVar5;\n  Pgno PVar6;\n  u8 uVar7;\n  u16 uVar8;\n  sqlite3 *psVar9;\n  int iVar10;\n  uint uVar11;\n  u8 *p_00;\n  sqlite3_file *psVar12;\n  uint *extraout_ECX;\n  MemPage *pMVar13;\n  Wal *pWVar14;\n  ushort uVar15;\n  int extraout_EDX;\n  sqlite3_file *extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  sqlite3_file *extraout_EDX_02;\n  undefined4 extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  uint uVar16;\n  sqlite3_file *extraout_EDX_05;\n  sqlite3_file *extraout_EDX_06;\n  undefined4 extraout_EDX_07;\n  undefined4 extraout_EDX_08;\n  undefined4 extraout_EDX_09;\n  sqlite3_file *extraout_EDX_10;\n  undefined4 extraout_EDX_11;\n  undefined4 uVar17;\n  sqlite3_file *extraout_EDX_12;\n  sqlite3_file *extraout_EDX_13;\n  sqlite3_file *psVar18;\n  int in_GS_OFFSET;\n  u32 local_44;\n  MemPage *pPage1;\n  int isOpen;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x62b7b;\n  __x86_get_pc_thunk_di();\n  pBt = p->pBt;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  pPager = pBt->pPager;\n  if (p->sharable != '\0') {\n    sqlite3BtreeEnter(p);\n  }\n  if (p->inTrans == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);\n      *extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if ((p->inTrans == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar15 = pBt->btsFlags;\n    if (((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')) {\n      if ((uVar15 & 1) == 0) goto LAB_00062c49;\n      psVar18 = (sqlite3_file *)&DAT_00000008;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar15 = uVar15 & 0xfffe;\n      pBt->btsFlags = uVar15;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;\n      pBVar3 = pBVar2->pBtree;\n      while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }\n      psVar9 = pBVar3->db;\nLAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;\n      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01');\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    psVar12 = (sqlite3_file *)pBt->nPage;\n    uVar15 = pBt->btsFlags & 0xffef;\n    pBt->btsFlags = uVar15;\n    if (psVar12 == (sqlite3_file *)0x0) {\n      pBt->btsFlags = uVar15 | 0x10;\n    }\n    pMVar13 = pBt->pPage1;\nLAB_00062cbf:\n    psVar18 = (sqlite3_file *)0x0;\n    if (pMVar13 == (MemPage *)0x0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);\n      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;\nLAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;\n      if (pBt->inTransaction != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');\n      goto LAB_00062c00;\n    }\n    if ((pBt->btsFlags & 1) != 0) goto LAB_00062cdd;\n    iVar10 = CONCAT44(psVar12,pPager->errCode);\n    if (pPager->errCode != 0) {\nLAB_00062e70:\n      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);\n      if ((int)iVar10 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }\n      psVar18 = (sqlite3_file *)0x205;\n      goto LAB_00062c00;\n    }\n    pPager->subjInMemory = p->db->temp_store == '\x02';\n    if (pPager->eState == '\x01') {\n      pWVar14 = pPager->pWal;\n      if (pWVar14 != (Wal *)0x0) {\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }\n      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      PVar6 = pPager->dbSize;\n      pPager->eState = '\x02';\n      *(undefined4 *)&pPager->journalOff = 0;\n      *(undefined4 *)((int)&pPager->journalOff + 4) = 0;\n      pPager->dbHintSize = PVar6;\n      pPager->dbFileSize = PVar6;\n      pPager->dbOrigSize = PVar6;\n    }\n    if (pBt->nPage == 0) {\n      psVar18 = (sqlite3_file *)newDatabase(pBt);\n      psVar12 = extraout_EDX_02;\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if ((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')) {\n      (p->lock).eLock = '\x01';\n      (p->lock).pNext = pBt->pLock;\n      pBt->pLock = &p->lock;\n    }\n    bVar1 = pBt->inTransaction;\n    if (extraout_EDX == 0) {\n      p->inTrans = '\x01';\n      if (bVar1 == 0) {\n        pBt->inTransaction = '\x01';\n      }\n      goto LAB_00062e08;\n    }\n    p->inTrans = '\x02';\n    if (bVar1 < 2) {\n      pBt->inTransaction = '\x02';\n    }\n    pMVar13 = pBt->pPage1;\n    pBt->pWriter = p;\n    uVar15 = pBt->btsFlags & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar15 = uVar15 | 0x40;\n    }\n    pBt->btsFlags = uVar15;\n    uVar5 = *(uint *)(pMVar13->aData + 0x1c);\n    if (pBt->nPage ==\n        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18))\n    goto LAB_00062d40;\n    psVar18 = (sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage);\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    uVar5 = pBt->nPage;\n    *(uint *)(pMVar13->aData + 0x1c) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    iVar10 = p->db->nSavepoint;\n    if ((pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0')) {\n      psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);\n      goto LAB_00062c00;\n    }\n  }\n  psVar18 = (sqlite3_file *)0x0;\nLAB_00062c00:\n  if (p->sharable != '\0') {\n    piVar4 = &p->wantToLock;\n    *piVar4 = *piVar4 + -1;\n    if (*piVar4 == 0) {\n      sqlite3BtreeLeave(p);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)psVar18;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" (function_definition "int __regparm3 sqlite3BtreeBeginTrans(Btree *p,int wrflag,int *pSchemaVersion)\n\n{\n  byte bVar1;\n  BtShared *pBt;\n  Pager *pPager;\n  BtLock *pBVar2;\n  Btree *pBVar3;\n  int *piVar4;\n  uint uVar5;\n  Pgno PVar6;\n  u8 uVar7;\n  u16 uVar8;\n  sqlite3 *psVar9;\n  int iVar10;\n  uint uVar11;\n  u8 *p_00;\n  sqlite3_file *psVar12;\n  uint *extraout_ECX;\n  MemPage *pMVar13;\n  Wal *pWVar14;\n  ushort uVar15;\n  int extraout_EDX;\n  sqlite3_file *extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  sqlite3_file *extraout_EDX_02;\n  undefined4 extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  uint uVar16;\n  sqlite3_file *extraout_EDX_05;\n  sqlite3_file *extraout_EDX_06;\n  undefined4 extraout_EDX_07;\n  undefined4 extraout_EDX_08;\n  undefined4 extraout_EDX_09;\n  sqlite3_file *extraout_EDX_10;\n  undefined4 extraout_EDX_11;\n  undefined4 uVar17;\n  sqlite3_file *extraout_EDX_12;\n  sqlite3_file *extraout_EDX_13;\n  sqlite3_file *psVar18;\n  int in_GS_OFFSET;\n  u32 local_44;\n  MemPage *pPage1;\n  int isOpen;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x62b7b;\n  __x86_get_pc_thunk_di();\n  pBt = p->pBt;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  pPager = pBt->pPager;\n  if (p->sharable != '\0') {\n    sqlite3BtreeEnter(p);\n  }\n  if (p->inTrans == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);\n      *extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if ((p->inTrans == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar15 = pBt->btsFlags;\n    if (((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')) {\n      if ((uVar15 & 1) == 0) goto LAB_00062c49;\n      psVar18 = (sqlite3_file *)&DAT_00000008;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar15 = uVar15 & 0xfffe;\n      pBt->btsFlags = uVar15;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;\n      pBVar3 = pBVar2->pBtree;\n      while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }\n      psVar9 = pBVar3->db;\nLAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;\n      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01');\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    psVar12 = (sqlite3_file *)pBt->nPage;\n    uVar15 = pBt->btsFlags & 0xffef;\n    pBt->btsFlags = uVar15;\n    if (psVar12 == (sqlite3_file *)0x0) {\n      pBt->btsFlags = uVar15 | 0x10;\n    }\n    pMVar13 = pBt->pPage1;\nLAB_00062cbf:\n    psVar18 = (sqlite3_file *)0x0;\n    if (pMVar13 == (MemPage *)0x0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);\n      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;\nLAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;\n      if (pBt->inTransaction != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');\n      goto LAB_00062c00;\n    }\n    if ((pBt->btsFlags & 1) != 0) goto LAB_00062cdd;\n    iVar10 = CONCAT44(psVar12,pPager->errCode);\n    if (pPager->errCode != 0) {\nLAB_00062e70:\n      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);\n      if ((int)iVar10 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }\n      psVar18 = (sqlite3_file *)0x205;\n      goto LAB_00062c00;\n    }\n    pPager->subjInMemory = p->db->temp_store == '\x02';\n    if (pPager->eState == '\x01') {\n      pWVar14 = pPager->pWal;\n      if (pWVar14 != (Wal *)0x0) {\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }\n      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      PVar6 = pPager->dbSize;\n      pPager->eState = '\x02';\n      *(undefined4 *)&pPager->journalOff = 0;\n      *(undefined4 *)((int)&pPager->journalOff + 4) = 0;\n      pPager->dbHintSize = PVar6;\n      pPager->dbFileSize = PVar6;\n      pPager->dbOrigSize = PVar6;\n    }\n    if (pBt->nPage == 0) {\n      psVar18 = (sqlite3_file *)newDatabase(pBt);\n      psVar12 = extraout_EDX_02;\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if ((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')) {\n      (p->lock).eLock = '\x01';\n      (p->lock).pNext = pBt->pLock;\n      pBt->pLock = &p->lock;\n    }\n    bVar1 = pBt->inTransaction;\n    if (extraout_EDX == 0) {\n      p->inTrans = '\x01';\n      if (bVar1 == 0) {\n        pBt->inTransaction = '\x01';\n      }\n      goto LAB_00062e08;\n    }\n    p->inTrans = '\x02';\n    if (bVar1 < 2) {\n      pBt->inTransaction = '\x02';\n    }\n    pMVar13 = pBt->pPage1;\n    pBt->pWriter = p;\n    uVar15 = pBt->btsFlags & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar15 = uVar15 | 0x40;\n    }\n    pBt->btsFlags = uVar15;\n    uVar5 = *(uint *)(pMVar13->aData + 0x1c);\n    if (pBt->nPage ==\n        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18))\n    goto LAB_00062d40;\n    psVar18 = (sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage);\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    uVar5 = pBt->nPage;\n    *(uint *)(pMVar13->aData + 0x1c) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    iVar10 = p->db->nSavepoint;\n    if ((pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0')) {\n      psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);\n      goto LAB_00062c00;\n    }\n  }\n  psVar18 = (sqlite3_file *)0x0;\nLAB_00062c00:\n  if (p->sharable != '\0') {\n    piVar4 = &p->wantToLock;\n    *piVar4 = *piVar4 + -1;\n    if (*piVar4 == 0) {\n      sqlite3BtreeLeave(p);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)psVar18;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "sqlite3BtreeBeginTrans(Btree *p,int wrflag,int *pSchemaVersion)" identifier (parameter_list "(Btree *p,int wrflag,int *pSchemaVersion)" ( (parameter_declaration "Btree *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "int wrflag" primitive_type identifier) , (parameter_declaration "int *pSchemaVersion" primitive_type (pointer_declarator "*pSchemaVersion" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  BtShared *pBt;\n  Pager *pPager;\n  BtLock *pBVar2;\n  Btree *pBVar3;\n  int *piVar4;\n  uint uVar5;\n  Pgno PVar6;\n  u8 uVar7;\n  u16 uVar8;\n  sqlite3 *psVar9;\n  int iVar10;\n  uint uVar11;\n  u8 *p_00;\n  sqlite3_file *psVar12;\n  uint *extraout_ECX;\n  MemPage *pMVar13;\n  Wal *pWVar14;\n  ushort uVar15;\n  int extraout_EDX;\n  sqlite3_file *extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  sqlite3_file *extraout_EDX_02;\n  undefined4 extraout_EDX_03;\n  undefined4 extraout_EDX_04;\n  uint uVar16;\n  sqlite3_file *extraout_EDX_05;\n  sqlite3_file *extraout_EDX_06;\n  undefined4 extraout_EDX_07;\n  undefined4 extraout_EDX_08;\n  undefined4 extraout_EDX_09;\n  sqlite3_file *extraout_EDX_10;\n  undefined4 extraout_EDX_11;\n  undefined4 uVar17;\n  sqlite3_file *extraout_EDX_12;\n  sqlite3_file *extraout_EDX_13;\n  sqlite3_file *psVar18;\n  int in_GS_OFFSET;\n  u32 local_44;\n  MemPage *pPage1;\n  int isOpen;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x62b7b;\n  __x86_get_pc_thunk_di();\n  pBt = p->pBt;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  pPager = pBt->pPager;\n  if (p->sharable != '\0') {\n    sqlite3BtreeEnter(p);\n  }\n  if (p->inTrans == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);\n      *extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if ((p->inTrans == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar15 = pBt->btsFlags;\n    if (((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')) {\n      if ((uVar15 & 1) == 0) goto LAB_00062c49;\n      psVar18 = (sqlite3_file *)&DAT_00000008;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar15 = uVar15 & 0xfffe;\n      pBt->btsFlags = uVar15;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;\n      pBVar3 = pBVar2->pBtree;\n      while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }\n      psVar9 = pBVar3->db;\nLAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;\n      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01');\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    psVar12 = (sqlite3_file *)pBt->nPage;\n    uVar15 = pBt->btsFlags & 0xffef;\n    pBt->btsFlags = uVar15;\n    if (psVar12 == (sqlite3_file *)0x0) {\n      pBt->btsFlags = uVar15 | 0x10;\n    }\n    pMVar13 = pBt->pPage1;\nLAB_00062cbf:\n    psVar18 = (sqlite3_file *)0x0;\n    if (pMVar13 == (MemPage *)0x0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);\n      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;\nLAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;\n      if (pBt->inTransaction != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');\n      goto LAB_00062c00;\n    }\n    if ((pBt->btsFlags & 1) != 0) goto LAB_00062cdd;\n    iVar10 = CONCAT44(psVar12,pPager->errCode);\n    if (pPager->errCode != 0) {\nLAB_00062e70:\n      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);\n      if ((int)iVar10 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }\n      psVar18 = (sqlite3_file *)0x205;\n      goto LAB_00062c00;\n    }\n    pPager->subjInMemory = p->db->temp_store == '\x02';\n    if (pPager->eState == '\x01') {\n      pWVar14 = pPager->pWal;\n      if (pWVar14 != (Wal *)0x0) {\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }\n      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      PVar6 = pPager->dbSize;\n      pPager->eState = '\x02';\n      *(undefined4 *)&pPager->journalOff = 0;\n      *(undefined4 *)((int)&pPager->journalOff + 4) = 0;\n      pPager->dbHintSize = PVar6;\n      pPager->dbFileSize = PVar6;\n      pPager->dbOrigSize = PVar6;\n    }\n    if (pBt->nPage == 0) {\n      psVar18 = (sqlite3_file *)newDatabase(pBt);\n      psVar12 = extraout_EDX_02;\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if ((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')) {\n      (p->lock).eLock = '\x01';\n      (p->lock).pNext = pBt->pLock;\n      pBt->pLock = &p->lock;\n    }\n    bVar1 = pBt->inTransaction;\n    if (extraout_EDX == 0) {\n      p->inTrans = '\x01';\n      if (bVar1 == 0) {\n        pBt->inTransaction = '\x01';\n      }\n      goto LAB_00062e08;\n    }\n    p->inTrans = '\x02';\n    if (bVar1 < 2) {\n      pBt->inTransaction = '\x02';\n    }\n    pMVar13 = pBt->pPage1;\n    pBt->pWriter = p;\n    uVar15 = pBt->btsFlags & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar15 = uVar15 | 0x40;\n    }\n    pBt->btsFlags = uVar15;\n    uVar5 = *(uint *)(pMVar13->aData + 0x1c);\n    if (pBt->nPage ==\n        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18))\n    goto LAB_00062d40;\n    psVar18 = (sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage);\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    uVar5 = pBt->nPage;\n    *(uint *)(pMVar13->aData + 0x1c) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    iVar10 = p->db->nSavepoint;\n    if ((pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0')) {\n      psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);\n      goto LAB_00062c00;\n    }\n  }\n  psVar18 = (sqlite3_file *)0x0;\nLAB_00062c00:\n  if (p->sharable != '\0') {\n    piVar4 = &p->wantToLock;\n    *piVar4 = *piVar4 + -1;\n    if (*piVar4 == 0) {\n      sqlite3BtreeLeave(p);\n    }\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)psVar18;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "BtShared *pBt;" type_identifier (pointer_declarator "*pBt" * identifier) ;) (declaration "Pager *pPager;" type_identifier (pointer_declarator "*pPager" * identifier) ;) (declaration "BtLock *pBVar2;" type_identifier (pointer_declarator "*pBVar2" * identifier) ;) (declaration "Btree *pBVar3;" type_identifier (pointer_declarator "*pBVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "Pgno PVar6;" type_identifier identifier ;) (declaration "u8 uVar7;" type_identifier identifier ;) (declaration "u16 uVar8;" type_identifier identifier ;) (declaration "sqlite3 *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "u8 *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "sqlite3_file *psVar12;" type_identifier (pointer_declarator "*psVar12" * identifier) ;) (declaration "uint *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "MemPage *pMVar13;" type_identifier (pointer_declarator "*pMVar13" * identifier) ;) (declaration "Wal *pWVar14;" type_identifier (pointer_declarator "*pWVar14" * identifier) ;) (declaration "ushort uVar15;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "sqlite3_file *extraout_EDX_00;" type_identifier (pointer_declarator "*extraout_EDX_00" * identifier) ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "sqlite3_file *extraout_EDX_02;" type_identifier (pointer_declarator "*extraout_EDX_02" * identifier) ;) (declaration "undefined4 extraout_EDX_03;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_04;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "sqlite3_file *extraout_EDX_05;" type_identifier (pointer_declarator "*extraout_EDX_05" * identifier) ;) (declaration "sqlite3_file *extraout_EDX_06;" type_identifier (pointer_declarator "*extraout_EDX_06" * identifier) ;) (declaration "undefined4 extraout_EDX_07;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_08;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_09;" type_identifier identifier ;) (declaration "sqlite3_file *extraout_EDX_10;" type_identifier (pointer_declarator "*extraout_EDX_10" * identifier) ;) (declaration "undefined4 extraout_EDX_11;" type_identifier identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "sqlite3_file *extraout_EDX_12;" type_identifier (pointer_declarator "*extraout_EDX_12" * identifier) ;) (declaration "sqlite3_file *extraout_EDX_13;" type_identifier (pointer_declarator "*extraout_EDX_13" * identifier) ;) (declaration "sqlite3_file *psVar18;" type_identifier (pointer_declarator "*psVar18" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "u32 local_44;" type_identifier identifier ;) (declaration "MemPage *pPage1;" type_identifier (pointer_declarator "*pPage1" * identifier) ;) (declaration "int isOpen;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x62b7b;" (assignment_expression "uStack_14 = 0x62b7b" identifier = number_literal) ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "pBt = p->pBt;" (assignment_expression "pBt = p->pBt" identifier = (field_expression "p->pBt" identifier -> field_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 "pPager = pBt->pPager;" (assignment_expression "pPager = pBt->pPager" identifier = (field_expression "pBt->pPager" identifier -> field_identifier)) ;) (if_statement "if (p->sharable != '\0') {\n    sqlite3BtreeEnter(p);\n  }" if (parenthesized_expression "(p->sharable != '\0')" ( (binary_expression "p->sharable != '\0'" (field_expression "p->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    sqlite3BtreeEnter(p);\n  }" { (expression_statement "sqlite3BtreeEnter(p);" (call_expression "sqlite3BtreeEnter(p)" identifier (argument_list "(p)" ( identifier ))) ;) })) (if_statement "if (p->inTrans == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);\n      *extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if ((p->inTrans == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar15 = pBt->btsFlags;\n    if (((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')) {\n      if ((uVar15 & 1) == 0) goto LAB_00062c49;\n      psVar18 = (sqlite3_file *)&DAT_00000008;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar15 = uVar15 & 0xfffe;\n      pBt->btsFlags = uVar15;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;\n      pBVar3 = pBVar2->pBtree;\n      while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }\n      psVar9 = pBVar3->db;\nLAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;\n      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01');\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    psVar12 = (sqlite3_file *)pBt->nPage;\n    uVar15 = pBt->btsFlags & 0xffef;\n    pBt->btsFlags = uVar15;\n    if (psVar12 == (sqlite3_file *)0x0) {\n      pBt->btsFlags = uVar15 | 0x10;\n    }\n    pMVar13 = pBt->pPage1;\nLAB_00062cbf:\n    psVar18 = (sqlite3_file *)0x0;\n    if (pMVar13 == (MemPage *)0x0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);\n      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;\nLAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;\n      if (pBt->inTransaction != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');\n      goto LAB_00062c00;\n    }\n    if ((pBt->btsFlags & 1) != 0) goto LAB_00062cdd;\n    iVar10 = CONCAT44(psVar12,pPager->errCode);\n    if (pPager->errCode != 0) {\nLAB_00062e70:\n      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);\n      if ((int)iVar10 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }\n      psVar18 = (sqlite3_file *)0x205;\n      goto LAB_00062c00;\n    }\n    pPager->subjInMemory = p->db->temp_store == '\x02';\n    if (pPager->eState == '\x01') {\n      pWVar14 = pPager->pWal;\n      if (pWVar14 != (Wal *)0x0) {\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }\n      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      PVar6 = pPager->dbSize;\n      pPager->eState = '\x02';\n      *(undefined4 *)&pPager->journalOff = 0;\n      *(undefined4 *)((int)&pPager->journalOff + 4) = 0;\n      pPager->dbHintSize = PVar6;\n      pPager->dbFileSize = PVar6;\n      pPager->dbOrigSize = PVar6;\n    }\n    if (pBt->nPage == 0) {\n      psVar18 = (sqlite3_file *)newDatabase(pBt);\n      psVar12 = extraout_EDX_02;\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if ((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')) {\n      (p->lock).eLock = '\x01';\n      (p->lock).pNext = pBt->pLock;\n      pBt->pLock = &p->lock;\n    }\n    bVar1 = pBt->inTransaction;\n    if (extraout_EDX == 0) {\n      p->inTrans = '\x01';\n      if (bVar1 == 0) {\n        pBt->inTransaction = '\x01';\n      }\n      goto LAB_00062e08;\n    }\n    p->inTrans = '\x02';\n    if (bVar1 < 2) {\n      pBt->inTransaction = '\x02';\n    }\n    pMVar13 = pBt->pPage1;\n    pBt->pWriter = p;\n    uVar15 = pBt->btsFlags & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar15 = uVar15 | 0x40;\n    }\n    pBt->btsFlags = uVar15;\n    uVar5 = *(uint *)(pMVar13->aData + 0x1c);\n    if (pBt->nPage ==\n        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18))\n    goto LAB_00062d40;\n    psVar18 = (sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage);\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    uVar5 = pBt->nPage;\n    *(uint *)(pMVar13->aData + 0x1c) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    iVar10 = p->db->nSavepoint;\n    if ((pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0')) {\n      psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);\n      goto LAB_00062c00;\n    }\n  }" if (parenthesized_expression "(p->inTrans == '\x02')" ( (binary_expression "p->inTrans == '\x02'" (field_expression "p->inTrans" identifier -> field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);\n      *extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }" { (labeled_statement "LAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);\n      *extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    }" statement_identifier : (if_statement "if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);\n      *extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    }" if (parenthesized_expression "(extraout_ECX != (uint *)0x0)" ( (binary_expression "extraout_ECX != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00062d48:\n      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);\n      *extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    }" { (labeled_statement "LAB_00062d48:\n      uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);" statement_identifier : (expression_statement "uVar5 = *(uint *)(pBt->pPage1->aData + 0x28);" (assignment_expression "uVar5 = *(uint *)(pBt->pPage1->aData + 0x28)" identifier = (pointer_expression "*(uint *)(pBt->pPage1->aData + 0x28)" * (cast_expression "(uint *)(pBt->pPage1->aData + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBt->pPage1->aData + 0x28)" ( (binary_expression "pBt->pPage1->aData + 0x28" (field_expression "pBt->pPage1->aData" (field_expression "pBt->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;)) (expression_statement "*extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "*extraout_ECX =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (pointer_expression "*extraout_ECX" * identifier) = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) }))) (if_statement "if (extraout_EDX != 0) goto LAB_00062d5d;" if (parenthesized_expression "(extraout_EDX != 0)" ( (binary_expression "extraout_EDX != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062d5d;" goto statement_identifier ;)) }) (else_clause "else {\n    if ((p->inTrans == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar15 = pBt->btsFlags;\n    if (((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')) {\n      if ((uVar15 & 1) == 0) goto LAB_00062c49;\n      psVar18 = (sqlite3_file *)&DAT_00000008;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar15 = uVar15 & 0xfffe;\n      pBt->btsFlags = uVar15;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;\n      pBVar3 = pBVar2->pBtree;\n      while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }\n      psVar9 = pBVar3->db;\nLAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;\n      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01');\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    psVar12 = (sqlite3_file *)pBt->nPage;\n    uVar15 = pBt->btsFlags & 0xffef;\n    pBt->btsFlags = uVar15;\n    if (psVar12 == (sqlite3_file *)0x0) {\n      pBt->btsFlags = uVar15 | 0x10;\n    }\n    pMVar13 = pBt->pPage1;\nLAB_00062cbf:\n    psVar18 = (sqlite3_file *)0x0;\n    if (pMVar13 == (MemPage *)0x0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);\n      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;\nLAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;\n      if (pBt->inTransaction != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');\n      goto LAB_00062c00;\n    }\n    if ((pBt->btsFlags & 1) != 0) goto LAB_00062cdd;\n    iVar10 = CONCAT44(psVar12,pPager->errCode);\n    if (pPager->errCode != 0) {\nLAB_00062e70:\n      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);\n      if ((int)iVar10 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }\n      psVar18 = (sqlite3_file *)0x205;\n      goto LAB_00062c00;\n    }\n    pPager->subjInMemory = p->db->temp_store == '\x02';\n    if (pPager->eState == '\x01') {\n      pWVar14 = pPager->pWal;\n      if (pWVar14 != (Wal *)0x0) {\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }\n      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      PVar6 = pPager->dbSize;\n      pPager->eState = '\x02';\n      *(undefined4 *)&pPager->journalOff = 0;\n      *(undefined4 *)((int)&pPager->journalOff + 4) = 0;\n      pPager->dbHintSize = PVar6;\n      pPager->dbFileSize = PVar6;\n      pPager->dbOrigSize = PVar6;\n    }\n    if (pBt->nPage == 0) {\n      psVar18 = (sqlite3_file *)newDatabase(pBt);\n      psVar12 = extraout_EDX_02;\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if ((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')) {\n      (p->lock).eLock = '\x01';\n      (p->lock).pNext = pBt->pLock;\n      pBt->pLock = &p->lock;\n    }\n    bVar1 = pBt->inTransaction;\n    if (extraout_EDX == 0) {\n      p->inTrans = '\x01';\n      if (bVar1 == 0) {\n        pBt->inTransaction = '\x01';\n      }\n      goto LAB_00062e08;\n    }\n    p->inTrans = '\x02';\n    if (bVar1 < 2) {\n      pBt->inTransaction = '\x02';\n    }\n    pMVar13 = pBt->pPage1;\n    pBt->pWriter = p;\n    uVar15 = pBt->btsFlags & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar15 = uVar15 | 0x40;\n    }\n    pBt->btsFlags = uVar15;\n    uVar5 = *(uint *)(pMVar13->aData + 0x1c);\n    if (pBt->nPage ==\n        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18))\n    goto LAB_00062d40;\n    psVar18 = (sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage);\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    uVar5 = pBt->nPage;\n    *(uint *)(pMVar13->aData + 0x1c) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    iVar10 = p->db->nSavepoint;\n    if ((pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0')) {\n      psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);\n      goto LAB_00062c00;\n    }\n  }" else (compound_statement "{\n    if ((p->inTrans == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar15 = pBt->btsFlags;\n    if (((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')) {\n      if ((uVar15 & 1) == 0) goto LAB_00062c49;\n      psVar18 = (sqlite3_file *)&DAT_00000008;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar15 = uVar15 & 0xfffe;\n      pBt->btsFlags = uVar15;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;\n      pBVar3 = pBVar2->pBtree;\n      while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }\n      psVar9 = pBVar3->db;\nLAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;\n      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01');\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    psVar12 = (sqlite3_file *)pBt->nPage;\n    uVar15 = pBt->btsFlags & 0xffef;\n    pBt->btsFlags = uVar15;\n    if (psVar12 == (sqlite3_file *)0x0) {\n      pBt->btsFlags = uVar15 | 0x10;\n    }\n    pMVar13 = pBt->pPage1;\nLAB_00062cbf:\n    psVar18 = (sqlite3_file *)0x0;\n    if (pMVar13 == (MemPage *)0x0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);\n      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;\nLAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;\n      if (pBt->inTransaction != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');\n      goto LAB_00062c00;\n    }\n    if ((pBt->btsFlags & 1) != 0) goto LAB_00062cdd;\n    iVar10 = CONCAT44(psVar12,pPager->errCode);\n    if (pPager->errCode != 0) {\nLAB_00062e70:\n      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);\n      if ((int)iVar10 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }\n      psVar18 = (sqlite3_file *)0x205;\n      goto LAB_00062c00;\n    }\n    pPager->subjInMemory = p->db->temp_store == '\x02';\n    if (pPager->eState == '\x01') {\n      pWVar14 = pPager->pWal;\n      if (pWVar14 != (Wal *)0x0) {\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }\n      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      PVar6 = pPager->dbSize;\n      pPager->eState = '\x02';\n      *(undefined4 *)&pPager->journalOff = 0;\n      *(undefined4 *)((int)&pPager->journalOff + 4) = 0;\n      pPager->dbHintSize = PVar6;\n      pPager->dbFileSize = PVar6;\n      pPager->dbOrigSize = PVar6;\n    }\n    if (pBt->nPage == 0) {\n      psVar18 = (sqlite3_file *)newDatabase(pBt);\n      psVar12 = extraout_EDX_02;\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if ((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')) {\n      (p->lock).eLock = '\x01';\n      (p->lock).pNext = pBt->pLock;\n      pBt->pLock = &p->lock;\n    }\n    bVar1 = pBt->inTransaction;\n    if (extraout_EDX == 0) {\n      p->inTrans = '\x01';\n      if (bVar1 == 0) {\n        pBt->inTransaction = '\x01';\n      }\n      goto LAB_00062e08;\n    }\n    p->inTrans = '\x02';\n    if (bVar1 < 2) {\n      pBt->inTransaction = '\x02';\n    }\n    pMVar13 = pBt->pPage1;\n    pBt->pWriter = p;\n    uVar15 = pBt->btsFlags & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar15 = uVar15 | 0x40;\n    }\n    pBt->btsFlags = uVar15;\n    uVar5 = *(uint *)(pMVar13->aData + 0x1c);\n    if (pBt->nPage ==\n        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18))\n    goto LAB_00062d40;\n    psVar18 = (sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage);\n    if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;\n    uVar5 = pBt->nPage;\n    *(uint *)(pMVar13->aData + 0x1c) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    iVar10 = p->db->nSavepoint;\n    if ((pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0')) {\n      psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);\n      goto LAB_00062c00;\n    }\n  }" { (if_statement "if ((p->inTrans == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }" if (parenthesized_expression "((p->inTrans == '\x01') && (extraout_EDX == 0))" ( (binary_expression "(p->inTrans == '\x01') && (extraout_EDX == 0)" (parenthesized_expression "(p->inTrans == '\x01')" ( (binary_expression "p->inTrans == '\x01'" (field_expression "p->inTrans" identifier -> field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }" { (labeled_statement "LAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }" statement_identifier : (if_statement "if (extraout_ECX == (uint *)0x0) {\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }" if (parenthesized_expression "(extraout_ECX == (uint *)0x0)" ( (binary_expression "extraout_ECX == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        psVar18 = (sqlite3_file *)0x0;\n        goto LAB_00062c00;\n      }" { (expression_statement "psVar18 = (sqlite3_file *)0x0;" (assignment_expression "psVar18 = (sqlite3_file *)0x0" identifier = (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00062d48;" goto statement_identifier ;) })) (expression_statement "uVar15 = pBt->btsFlags;" (assignment_expression "uVar15 = pBt->btsFlags" identifier = (field_expression "pBt->btsFlags" identifier -> field_identifier)) ;) (if_statement "if (((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')) {\n      if ((uVar15 & 1) == 0) goto LAB_00062c49;\n      psVar18 = (sqlite3_file *)&DAT_00000008;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar15 = uVar15 & 0xfffe;\n      pBt->btsFlags = uVar15;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;\n      pBVar3 = pBVar2->pBtree;\n      while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }\n      psVar9 = pBVar3->db;\nLAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;\n      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;\n    }" if (parenthesized_expression "(((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0'))" ( (binary_expression "((p->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')" (parenthesized_expression "((p->db->flags & 0x2000000) == 0)" ( (binary_expression "(p->db->flags & 0x2000000) == 0" (parenthesized_expression "(p->db->flags & 0x2000000)" ( (binary_expression "p->db->flags & 0x2000000" (field_expression "p->db->flags" (field_expression "p->db" identifier -> field_identifier) -> field_identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pPager->readOnly != '\0')" ( (binary_expression "pPager->readOnly != '\0'" (field_expression "pPager->readOnly" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if ((uVar15 & 1) == 0) goto LAB_00062c49;\n      psVar18 = (sqlite3_file *)&DAT_00000008;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }\n    }" { (if_statement "if ((uVar15 & 1) == 0) goto LAB_00062c49;" if (parenthesized_expression "((uVar15 & 1) == 0)" ( (binary_expression "(uVar15 & 1) == 0" (parenthesized_expression "(uVar15 & 1)" ( (binary_expression "uVar15 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00062c49;" goto statement_identifier ;)) (expression_statement "psVar18 = (sqlite3_file *)&DAT_00000008;" (assignment_expression "psVar18 = (sqlite3_file *)&DAT_00000008" identifier = (cast_expression "(sqlite3_file *)&DAT_00000008" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) ;) (if_statement "if (extraout_EDX != 0) goto LAB_00062c00;" if (parenthesized_expression "(extraout_EDX != 0)" ( (binary_expression "extraout_EDX != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) (labeled_statement "LAB_00062be5:\n      if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }" statement_identifier : (if_statement "if ((uVar15 & 0x80) != 0) {\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }" if (parenthesized_expression "((uVar15 & 0x80) != 0)" ( (binary_expression "(uVar15 & 0x80) != 0" (parenthesized_expression "(uVar15 & 0x80)" ( (binary_expression "uVar15 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00062bed:\n        psVar9 = pBt->pWriter->db;\n        goto LAB_00062bf2;\n      }" { (labeled_statement "LAB_00062bed:\n        psVar9 = pBt->pWriter->db;" statement_identifier : (expression_statement "psVar9 = pBt->pWriter->db;" (assignment_expression "psVar9 = pBt->pWriter->db" identifier = (field_expression "pBt->pWriter->db" (field_expression "pBt->pWriter" identifier -> field_identifier) -> field_identifier)) ;)) (goto_statement "goto LAB_00062bf2;" goto statement_identifier ;) }))) }) (else_clause "else {\n      uVar15 = uVar15 & 0xfffe;\n      pBt->btsFlags = uVar15;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;\n      pBVar3 = pBVar2->pBtree;\n      while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }\n      psVar9 = pBVar3->db;\nLAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;\n      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;\n    }" else (compound_statement "{\n      uVar15 = uVar15 & 0xfffe;\n      pBt->btsFlags = uVar15;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;\n      pBVar3 = pBVar2->pBtree;\n      while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }\n      psVar9 = pBVar3->db;\nLAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;\n      if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;\n    }" { (expression_statement "uVar15 = uVar15 & 0xfffe;" (assignment_expression "uVar15 = uVar15 & 0xfffe" identifier = (binary_expression "uVar15 & 0xfffe" identifier & number_literal)) ;) (expression_statement "pBt->btsFlags = uVar15;" (assignment_expression "pBt->btsFlags = uVar15" (field_expression "pBt->btsFlags" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;" statement_identifier : (if_statement "if (extraout_EDX == 0) goto LAB_00062be5;" if (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062be5;" goto statement_identifier ;))) (if_statement "if ((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)) goto LAB_00062bed;" if (parenthesized_expression "((pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0))" ( (binary_expression "(pBt->inTransaction == '\x02') || ((uVar15 & 0x80) != 0)" (parenthesized_expression "(pBt->inTransaction == '\x02')" ( (binary_expression "pBt->inTransaction == '\x02'" (field_expression "pBt->inTransaction" identifier -> field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "((uVar15 & 0x80) != 0)" ( (binary_expression "(uVar15 & 0x80) != 0" (parenthesized_expression "(uVar15 & 0x80)" ( (binary_expression "uVar15 & 0x80" identifier & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00062bed;" goto statement_identifier ;)) (if_statement "if ((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)) goto LAB_00062c81;" if (parenthesized_expression "((extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0))" ( (binary_expression "(extraout_EDX < 2) || (pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)" (parenthesized_expression "(extraout_EDX < 2)" ( (binary_expression "extraout_EDX < 2" identifier < number_literal) )) || (parenthesized_expression "(pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0)" ( (comma_expression "pBVar2 = pBt->pLock, pBVar2 == (BtLock *)0x0" (assignment_expression "pBVar2 = pBt->pLock" identifier = (field_expression "pBt->pLock" identifier -> field_identifier)) , (binary_expression "pBVar2 == (BtLock *)0x0" identifier == (cast_expression "(BtLock *)0x0" ( (type_descriptor "BtLock *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00062c81;" goto statement_identifier ;)) (expression_statement "pBVar3 = pBVar2->pBtree;" (assignment_expression "pBVar3 = pBVar2->pBtree" identifier = (field_expression "pBVar2->pBtree" identifier -> field_identifier)) ;) (while_statement "while (p == pBVar3) {\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }" while (parenthesized_expression "(p == pBVar3)" ( (binary_expression "p == pBVar3" identifier == identifier) )) (compound_statement "{\n        pBVar2 = pBVar2->pNext;\n        if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;\n        pBVar3 = pBVar2->pBtree;\n      }" { (expression_statement "pBVar2 = pBVar2->pNext;" (assignment_expression "pBVar2 = pBVar2->pNext" identifier = (field_expression "pBVar2->pNext" identifier -> field_identifier)) ;) (if_statement "if (pBVar2 == (BtLock *)0x0) goto LAB_00062c81;" if (parenthesized_expression "(pBVar2 == (BtLock *)0x0)" ( (binary_expression "pBVar2 == (BtLock *)0x0" identifier == (cast_expression "(BtLock *)0x0" ( (type_descriptor "BtLock *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062c81;" goto statement_identifier ;)) (expression_statement "pBVar3 = pBVar2->pBtree;" (assignment_expression "pBVar3 = pBVar2->pBtree" identifier = (field_expression "pBVar2->pBtree" identifier -> field_identifier)) ;) })) (expression_statement "psVar9 = pBVar3->db;" (assignment_expression "psVar9 = pBVar3->db" identifier = (field_expression "pBVar3->db" identifier -> field_identifier)) ;) (labeled_statement "LAB_00062bf2:\n      psVar18 = (sqlite3_file *)0x106;" statement_identifier : (expression_statement "psVar18 = (sqlite3_file *)0x106;" (assignment_expression "psVar18 = (sqlite3_file *)0x106" identifier = (cast_expression "(sqlite3_file *)0x106" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (psVar9 != (sqlite3 *)0x0) goto LAB_00062c00;" if (parenthesized_expression "(psVar9 != (sqlite3 *)0x0)" ( (binary_expression "psVar9 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00062c81:\n    psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01');" statement_identifier : (expression_statement "psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01');" (assignment_expression "psVar18 = (sqlite3_file *)querySharedCacheTableLock(p,1,'\x01')" identifier = (cast_expression "(sqlite3_file *)querySharedCacheTableLock(p,1,'\x01')" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "querySharedCacheTableLock(p,1,'\x01')" identifier (argument_list "(p,1,'\x01')" ( identifier , number_literal , (char_literal "'\x01'" ' escape_sequence ') ))))) ;)) (if_statement "if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;" if (parenthesized_expression "(psVar18 != (sqlite3_file *)0x0)" ( (binary_expression "psVar18 != (sqlite3_file *)0x0" identifier != (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) (expression_statement "psVar12 = (sqlite3_file *)pBt->nPage;" (assignment_expression "psVar12 = (sqlite3_file *)pBt->nPage" identifier = (cast_expression "(sqlite3_file *)pBt->nPage" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pBt->nPage" identifier -> field_identifier))) ;) (expression_statement "uVar15 = pBt->btsFlags & 0xffef;" (assignment_expression "uVar15 = pBt->btsFlags & 0xffef" identifier = (binary_expression "pBt->btsFlags & 0xffef" (field_expression "pBt->btsFlags" identifier -> field_identifier) & number_literal)) ;) (expression_statement "pBt->btsFlags = uVar15;" (assignment_expression "pBt->btsFlags = uVar15" (field_expression "pBt->btsFlags" identifier -> field_identifier) = identifier) ;) (if_statement "if (psVar12 == (sqlite3_file *)0x0) {\n      pBt->btsFlags = uVar15 | 0x10;\n    }" if (parenthesized_expression "(psVar12 == (sqlite3_file *)0x0)" ( (binary_expression "psVar12 == (sqlite3_file *)0x0" identifier == (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pBt->btsFlags = uVar15 | 0x10;\n    }" { (expression_statement "pBt->btsFlags = uVar15 | 0x10;" (assignment_expression "pBt->btsFlags = uVar15 | 0x10" (field_expression "pBt->btsFlags" identifier -> field_identifier) = (binary_expression "uVar15 | 0x10" identifier | number_literal)) ;) })) (expression_statement "pMVar13 = pBt->pPage1;" (assignment_expression "pMVar13 = pBt->pPage1" identifier = (field_expression "pBt->pPage1" identifier -> field_identifier)) ;) (labeled_statement "LAB_00062cbf:\n    psVar18 = (sqlite3_file *)0x0;" statement_identifier : (expression_statement "psVar18 = (sqlite3_file *)0x0;" (assignment_expression "psVar18 = (sqlite3_file *)0x0" identifier = (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (pMVar13 == (MemPage *)0x0) goto LAB_00062d23;" if (parenthesized_expression "(pMVar13 == (MemPage *)0x0)" ( (binary_expression "pMVar13 == (MemPage *)0x0" identifier == (cast_expression "(MemPage *)0x0" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062d23;" goto statement_identifier ;)) (labeled_statement "LAB_00062cc3:\n    if ((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);\n      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;\nLAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;\n      if (pBt->inTransaction != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');\n      goto LAB_00062c00;\n    }" statement_identifier : (if_statement "if ((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);\n      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;\nLAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;\n      if (pBt->inTransaction != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');\n      goto LAB_00062c00;\n    }" if (parenthesized_expression "((psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0))" ( (binary_expression "(psVar18 != (sqlite3_file *)0x0) || (extraout_EDX == 0)" (parenthesized_expression "(psVar18 != (sqlite3_file *)0x0)" ( (binary_expression "psVar18 != (sqlite3_file *)0x0" identifier != (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);\n      if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;\nLAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;\n      if (pBt->inTransaction != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');\n      goto LAB_00062c00;\n    }" { (labeled_statement "LAB_00062dc8:\n      iVar10 = CONCAT44(psVar12,psVar18);" statement_identifier : (expression_statement "iVar10 = CONCAT44(psVar12,psVar18);" (assignment_expression "iVar10 = CONCAT44(psVar12,psVar18)" identifier = (call_expression "CONCAT44(psVar12,psVar18)" identifier (argument_list "(psVar12,psVar18)" ( identifier , identifier )))) ;)) (if_statement "if (psVar18 == (sqlite3_file *)0x0) goto LAB_00062dd0;" if (parenthesized_expression "(psVar18 == (sqlite3_file *)0x0)" ( (binary_expression "psVar18 == (sqlite3_file *)0x0" identifier == (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062dd0;" goto statement_identifier ;)) (labeled_statement "LAB_00062d35:\n      psVar18 = (sqlite3_file *)iVar10;" statement_identifier : (expression_statement "psVar18 = (sqlite3_file *)iVar10;" (assignment_expression "psVar18 = (sqlite3_file *)iVar10" identifier = (cast_expression "(sqlite3_file *)iVar10" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (pBt->inTransaction != '\0') goto LAB_00062cf5;" if (parenthesized_expression "(pBt->inTransaction != '\0')" ( (binary_expression "pBt->inTransaction != '\0'" (field_expression "pBt->inTransaction" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00062cf5;" goto statement_identifier ;)) (labeled_statement "LAB_00062cec:\n      do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');" statement_identifier : (do_statement "do {\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      } while (pBt->inTransaction == '\0');" do (compound_statement "{\n        psVar18 = (sqlite3_file *)iVar10;\n        unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));\nLAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;\nLAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);\n        iVar10 = CONCAT44(extraout_EDX_01,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        iVar10 = btreeGetPage(pBt,1,&pPage1,0);\n        iVar10 = CONCAT44(extraout_EDX_04,iVar10);\n        if (iVar10 != 0) goto LAB_00062d35;\n        piVar4 = (int *)pPage1->aData;\n        uVar5 = piVar4[7];\n        local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        uVar5 = pBt->pPager->dbSize;\n        uVar16 = (uint)pBt->db->flags & 0x2000000;\n        if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }\n        if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\nLAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }\n        pBt->btsFlags = pBt->btsFlags | 2;\n        bVar1 = *(byte *)(piVar4 + 5);\n        uVar11 = uVar16 - bVar1;\n        if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }\n        if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;\n        sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n        pBt->pPage1 = (MemPage *)0x0;\n        psVar12 = extraout_EDX_05;\nLAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);\n      }" { (expression_statement "psVar18 = (sqlite3_file *)iVar10;" (assignment_expression "psVar18 = (sqlite3_file *)iVar10" identifier = (cast_expression "(sqlite3_file *)iVar10" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20));" (call_expression "unlockBtreeIfUnused((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20))" identifier (argument_list "((BtShared *)&pBt->pPage1,(BtShared *)((ulonglong)iVar10 >> 0x20))" ( (cast_expression "(BtShared *)&pBt->pPage1" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBt->pPage1" & (field_expression "pBt->pPage1" identifier -> field_identifier))) , (cast_expression "(BtShared *)((ulonglong)iVar10 >> 0x20)" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)iVar10 >> 0x20)" ( (binary_expression "(ulonglong)iVar10 >> 0x20" (cast_expression "(ulonglong)iVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (labeled_statement "LAB_00062cf5:\n        if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;" statement_identifier : (if_statement "if ((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)) break;" if (parenthesized_expression "((((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0))" ( (binary_expression "(((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')) ||\n           (iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)" (parenthesized_expression "(((char)psVar18 != '\x05') || (pBt->inTransaction != '\0'))" ( (binary_expression "((char)psVar18 != '\x05') || (pBt->inTransaction != '\0')" (parenthesized_expression "((char)psVar18 != '\x05')" ( (binary_expression "(char)psVar18 != '\x05'" (cast_expression "(char)psVar18" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) || (parenthesized_expression "(pBt->inTransaction != '\0')" ( (binary_expression "pBt->inTransaction != '\0'" (field_expression "pBt->inTransaction" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0)" ( (comma_expression "iVar10 = btreeInvokeBusyHandler(pBt), psVar12 = extraout_EDX_00, iVar10 == 0" (assignment_expression "iVar10 = btreeInvokeBusyHandler(pBt)" identifier = (call_expression "btreeInvokeBusyHandler(pBt)" identifier (argument_list "(pBt)" ( identifier )))) , (comma_expression "psVar12 = extraout_EDX_00, iVar10 == 0" (assignment_expression "psVar12 = extraout_EDX_00" identifier = identifier) , (binary_expression "iVar10 == 0" identifier == number_literal))) ))) )) (break_statement "break;" break ;))) (labeled_statement "LAB_00062d1c:\n        if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;" statement_identifier : (if_statement "if (pBt->pPage1 != (MemPage *)0x0) goto LAB_00062cc3;" if (parenthesized_expression "(pBt->pPage1 != (MemPage *)0x0)" ( (binary_expression "pBt->pPage1 != (MemPage *)0x0" (field_expression "pBt->pPage1" identifier -> field_identifier) != (cast_expression "(MemPage *)0x0" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062cc3;" goto statement_identifier ;))) (labeled_statement "LAB_00062d23:\n        iVar10 = sqlite3PagerSharedLock(pBt->pPager);" statement_identifier : (expression_statement "iVar10 = sqlite3PagerSharedLock(pBt->pPager);" (assignment_expression "iVar10 = sqlite3PagerSharedLock(pBt->pPager)" identifier = (call_expression "sqlite3PagerSharedLock(pBt->pPager)" identifier (argument_list "(pBt->pPager)" ( (field_expression "pBt->pPager" identifier -> field_identifier) )))) ;)) (expression_statement "iVar10 = CONCAT44(extraout_EDX_01,iVar10);" (assignment_expression "iVar10 = CONCAT44(extraout_EDX_01,iVar10)" identifier = (call_expression "CONCAT44(extraout_EDX_01,iVar10)" identifier (argument_list "(extraout_EDX_01,iVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 != 0) goto LAB_00062d35;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;)) (expression_statement "iVar10 = btreeGetPage(pBt,1,&pPage1,0);" (assignment_expression "iVar10 = btreeGetPage(pBt,1,&pPage1,0)" identifier = (call_expression "btreeGetPage(pBt,1,&pPage1,0)" identifier (argument_list "(pBt,1,&pPage1,0)" ( identifier , number_literal , (pointer_expression "&pPage1" & identifier) , number_literal )))) ;) (expression_statement "iVar10 = CONCAT44(extraout_EDX_04,iVar10);" (assignment_expression "iVar10 = CONCAT44(extraout_EDX_04,iVar10)" identifier = (call_expression "CONCAT44(extraout_EDX_04,iVar10)" identifier (argument_list "(extraout_EDX_04,iVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 != 0) goto LAB_00062d35;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;)) (expression_statement "piVar4 = (int *)pPage1->aData;" (assignment_expression "piVar4 = (int *)pPage1->aData" identifier = (cast_expression "(int *)pPage1->aData" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pPage1->aData" identifier -> field_identifier))) ;) (expression_statement "uVar5 = piVar4[7];" (assignment_expression "uVar5 = piVar4[7]" identifier = (subscript_expression "piVar4[7]" identifier [ number_literal ])) ;) (expression_statement "local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "local_44 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" identifier = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = pBt->pPager->dbSize;" (assignment_expression "uVar5 = pBt->pPager->dbSize" identifier = (field_expression "pBt->pPager->dbSize" (field_expression "pBt->pPager" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "uVar16 = (uint)pBt->db->flags & 0x2000000;" (assignment_expression "uVar16 = (uint)pBt->db->flags & 0x2000000" identifier = (binary_expression "(uint)pBt->db->flags & 0x2000000" (cast_expression "(uint)pBt->db->flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "pBt->db->flags" (field_expression "pBt->db" identifier -> field_identifier) -> field_identifier)) & number_literal)) ;) (if_statement "if ((local_44 == 0) || (piVar4[6] != piVar4[0x17])) {\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" if (parenthesized_expression "((local_44 == 0) || (piVar4[6] != piVar4[0x17]))" ( (binary_expression "(local_44 == 0) || (piVar4[6] != piVar4[0x17])" (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar4[6] != piVar4[0x17])" ( (binary_expression "piVar4[6] != piVar4[0x17]" (subscript_expression "piVar4[6]" identifier [ number_literal ]) != (subscript_expression "piVar4[0x17]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;\n        }" { (if_statement "if ((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)) goto LAB_000630a0;" if (parenthesized_expression "((uVar16 != 0) || (local_44 = uVar5, uVar5 == 0))" ( (binary_expression "(uVar16 != 0) || (local_44 = uVar5, uVar5 == 0)" (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_44 = uVar5, uVar5 == 0)" ( (comma_expression "local_44 = uVar5, uVar5 == 0" (assignment_expression "local_44 = uVar5" identifier = identifier) , (binary_expression "uVar5 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_000630a0;" goto statement_identifier ;)) }) (else_clause "else if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" else (if_statement "if (uVar16 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" { (labeled_statement "LAB_000630a0:\n          local_44 = 0;" statement_identifier : (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_000630a8;" goto statement_identifier ;) })))) (if_statement "if (((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))) goto LAB_00062f1c;" if (parenthesized_expression "(((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074))))" ( (binary_expression "((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)) ||\n           ((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))" (parenthesized_expression "((*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574))" ( (binary_expression "(*piVar4 != 0x694c5153) || (piVar4[1] != 0x66206574)" (parenthesized_expression "(*piVar4 != 0x694c5153)" ( (binary_expression "*piVar4 != 0x694c5153" (pointer_expression "*piVar4" * identifier) != number_literal) )) || (parenthesized_expression "(piVar4[1] != 0x66206574)" ( (binary_expression "piVar4[1] != 0x66206574" (subscript_expression "piVar4[1]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)))" ( (parenthesized_expression "(piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074))" ( (binary_expression "piVar4[2] != 0x616d726f || (piVar4[3] != 0x332074)" (binary_expression "piVar4[2] != 0x616d726f" (subscript_expression "piVar4[2]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(piVar4[3] != 0x332074)" ( (binary_expression "piVar4[3] != 0x332074" (subscript_expression "piVar4[3]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00062f1c;" goto statement_identifier ;)) (if_statement "if (2 < *(byte *)((int)piVar4 + 0x12)) {\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }" if (parenthesized_expression "(2 < *(byte *)((int)piVar4 + 0x12))" ( (binary_expression "2 < *(byte *)((int)piVar4 + 0x12)" number_literal < (pointer_expression "*(byte *)((int)piVar4 + 0x12)" * (cast_expression "(byte *)((int)piVar4 + 0x12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x12)" ( (binary_expression "(int)piVar4 + 0x12" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n          pBt->btsFlags = pBt->btsFlags | 1;\n        }" { (expression_statement "pBt->btsFlags = pBt->btsFlags | 1;" (assignment_expression "pBt->btsFlags = pBt->btsFlags | 1" (field_expression "pBt->btsFlags" identifier -> field_identifier) = (binary_expression "pBt->btsFlags | 1" (field_expression "pBt->btsFlags" identifier -> field_identifier) | number_literal)) ;) })) (if_statement "if (2 < *(byte *)((int)piVar4 + 0x13)) goto LAB_00062f1c;" if (parenthesized_expression "(2 < *(byte *)((int)piVar4 + 0x13))" ( (binary_expression "2 < *(byte *)((int)piVar4 + 0x13)" number_literal < (pointer_expression "*(byte *)((int)piVar4 + 0x13)" * (cast_expression "(byte *)((int)piVar4 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x13)" ( (binary_expression "(int)piVar4 + 0x13" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00062f1c;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }" if (parenthesized_expression "((*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0))" ( (binary_expression "(*(byte *)((int)piVar4 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)" (parenthesized_expression "(*(byte *)((int)piVar4 + 0x13) == 2)" ( (binary_expression "*(byte *)((int)piVar4 + 0x13) == 2" (pointer_expression "*(byte *)((int)piVar4 + 0x13)" * (cast_expression "(byte *)((int)piVar4 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x13)" ( (binary_expression "(int)piVar4 + 0x13" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "((pBt->btsFlags & 0x20) == 0)" ( (binary_expression "(pBt->btsFlags & 0x20) == 0" (parenthesized_expression "(pBt->btsFlags & 0x20)" ( (binary_expression "pBt->btsFlags & 0x20" (field_expression "pBt->btsFlags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          isOpen = 0;\n          psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);\n          if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar18 = psVar12;\nLAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);\n          if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }" { (expression_statement "isOpen = 0;" (assignment_expression "isOpen = 0" identifier = number_literal) ;) (expression_statement "psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen);" (assignment_expression "psVar12 = (sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen)" identifier = (cast_expression "(sqlite3_file *)sqlite3PagerOpenWal(pBt->pPager,&isOpen)" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3PagerOpenWal(pBt->pPager,&isOpen)" identifier (argument_list "(pBt->pPager,&isOpen)" ( (field_expression "pBt->pPager" identifier -> field_identifier) , (pointer_expression "&isOpen" & identifier) ))))) ;) (if_statement "if (psVar12 == (sqlite3_file *)0x0) {\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }" if (parenthesized_expression "(psVar12 == (sqlite3_file *)0x0)" ( (binary_expression "psVar12 == (sqlite3_file *)0x0" identifier == (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (isOpen != 0) goto LAB_000631e1;\n            sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n            pMVar13 = pBt->pPage1;\n            psVar12 = extraout_EDX_13;\n            goto LAB_00062cbf;\n          }" { (if_statement "if (isOpen != 0) goto LAB_000631e1;" if (parenthesized_expression "(isOpen != 0)" ( (binary_expression "isOpen != 0" identifier != number_literal) )) (goto_statement "goto LAB_000631e1;" goto statement_identifier ;)) (expression_statement "sqlite3PagerUnrefPageOne(pPage1->pDbPage);" (call_expression "sqlite3PagerUnrefPageOne(pPage1->pDbPage)" identifier (argument_list "(pPage1->pDbPage)" ( (field_expression "pPage1->pDbPage" identifier -> field_identifier) ))) ;) (expression_statement "pMVar13 = pBt->pPage1;" (assignment_expression "pMVar13 = pBt->pPage1" identifier = (field_expression "pBt->pPage1" identifier -> field_identifier)) ;) (expression_statement "psVar12 = extraout_EDX_13;" (assignment_expression "psVar12 = extraout_EDX_13" identifier = identifier) ;) (goto_statement "goto LAB_00062cbf;" goto statement_identifier ;) })) (labeled_statement "LAB_0006325c:\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);" statement_identifier : (expression_statement "sqlite3PagerUnrefPageOne(pPage1->pDbPage);" (call_expression "sqlite3PagerUnrefPageOne(pPage1->pDbPage)" identifier (argument_list "(pPage1->pDbPage)" ( (field_expression "pPage1->pDbPage" identifier -> field_identifier) ))) ;)) (expression_statement "pBt->pPage1 = (MemPage *)0x0;" (assignment_expression "pBt->pPage1 = (MemPage *)0x0" (field_expression "pBt->pPage1" identifier -> field_identifier) = (cast_expression "(MemPage *)0x0" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar18 = psVar12;" (assignment_expression "psVar18 = psVar12" identifier = identifier) ;) (labeled_statement "LAB_00063279:\n          iVar10 = CONCAT44(psVar12,psVar18);" statement_identifier : (expression_statement "iVar10 = CONCAT44(psVar12,psVar18);" (assignment_expression "iVar10 = CONCAT44(psVar12,psVar18)" identifier = (call_expression "CONCAT44(psVar12,psVar18)" identifier (argument_list "(psVar12,psVar18)" ( identifier , identifier )))) ;)) (if_statement "if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062d35;" if (parenthesized_expression "(psVar18 != (sqlite3_file *)0x0)" ( (binary_expression "psVar18 != (sqlite3_file *)0x0" identifier != (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;)) (goto_statement "goto LAB_00062d1c;" goto statement_identifier ;) })) (labeled_statement "LAB_000631e1:\n        if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }" statement_identifier : (if_statement "if ((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)) {\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }" if (parenthesized_expression "((((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101))" ( (binary_expression "(((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))\n           || (0xfeff < uVar16 - 0x101)" (parenthesized_expression "(((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0))" ( (binary_expression "((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))\n            || (uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0)" (parenthesized_expression "((*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' '))" ( (binary_expression "(*(short *)((int)piVar4 + 0x15) != 0x2040) || (*(char *)((int)piVar4 + 0x17) != ' ')" (parenthesized_expression "(*(short *)((int)piVar4 + 0x15) != 0x2040)" ( (binary_expression "*(short *)((int)piVar4 + 0x15) != 0x2040" (pointer_expression "*(short *)((int)piVar4 + 0x15)" * (cast_expression "(short *)((int)piVar4 + 0x15)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x15)" ( (binary_expression "(int)piVar4 + 0x15" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)((int)piVar4 + 0x17) != ' ')" ( (binary_expression "*(char *)((int)piVar4 + 0x17) != ' '" (pointer_expression "*(char *)((int)piVar4 + 0x17)" * (cast_expression "(char *)((int)piVar4 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x17)" ( (binary_expression "(int)piVar4 + 0x17" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "' '" ' character ')) ))) )) || (parenthesized_expression "(uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0)" ( (comma_expression "uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10, (uVar16 - 1 & uVar16) != 0" (assignment_expression "uVar16 = (uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10" identifier = (binary_expression "(uint)*(byte *)(piVar4 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar4 + 0x11) << 0x10" (binary_expression "(uint)*(byte *)(piVar4 + 4) << 8" (binary_expression "(uint)*(byte *)(piVar4 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(piVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 4)" ( (binary_expression "piVar4 + 4" identifier + number_literal) )))) << number_literal) | (binary_expression "(uint)*(byte *)((int)piVar4 + 0x11) << 0x10" (binary_expression "(uint)*(byte *)((int)piVar4 + 0x11)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)piVar4 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x11)" ( (binary_expression "(int)piVar4 + 0x11" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal))) , (binary_expression "(uVar16 - 1 & uVar16) != 0" (parenthesized_expression "(uVar16 - 1 & uVar16)" ( (binary_expression "uVar16 - 1 & uVar16" (binary_expression "uVar16 - 1" identifier - number_literal) & identifier) )) != number_literal)) ))) )) || (parenthesized_expression "(0xfeff < uVar16 - 0x101)" ( (binary_expression "0xfeff < uVar16 - 0x101" number_literal < (binary_expression "uVar16 - 0x101" identifier - number_literal)) ))) )) (compound_statement "{\n          psVar18 = (sqlite3_file *)0x1a;\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->pPage1 = (MemPage *)0x0;\n          psVar12 = extraout_EDX_10;\n          goto LAB_00062ce2;\n        }" { (expression_statement "psVar18 = (sqlite3_file *)0x1a;" (assignment_expression "psVar18 = (sqlite3_file *)0x1a" identifier = (cast_expression "(sqlite3_file *)0x1a" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sqlite3PagerUnrefPageOne(pPage1->pDbPage);" (call_expression "sqlite3PagerUnrefPageOne(pPage1->pDbPage)" identifier (argument_list "(pPage1->pDbPage)" ( (field_expression "pPage1->pDbPage" identifier -> field_identifier) ))) ;) (expression_statement "pBt->pPage1 = (MemPage *)0x0;" (assignment_expression "pBt->pPage1 = (MemPage *)0x0" (field_expression "pBt->pPage1" identifier -> field_identifier) = (cast_expression "(MemPage *)0x0" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar12 = extraout_EDX_10;" (assignment_expression "psVar12 = extraout_EDX_10" identifier = identifier) ;) (goto_statement "goto LAB_00062ce2;" goto statement_identifier ;) }))) (expression_statement "pBt->btsFlags = pBt->btsFlags | 2;" (assignment_expression "pBt->btsFlags = pBt->btsFlags | 2" (field_expression "pBt->btsFlags" identifier -> field_identifier) = (binary_expression "pBt->btsFlags | 2" (field_expression "pBt->btsFlags" identifier -> field_identifier) | number_literal)) ;) (expression_statement "bVar1 = *(byte *)(piVar4 + 5);" (assignment_expression "bVar1 = *(byte *)(piVar4 + 5)" identifier = (pointer_expression "*(byte *)(piVar4 + 5)" * (cast_expression "(byte *)(piVar4 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 5)" ( (binary_expression "piVar4 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar16 - bVar1;" (assignment_expression "uVar11 = uVar16 - bVar1" identifier = (binary_expression "uVar16 - bVar1" identifier - identifier)) ;) (if_statement "if (uVar16 != pBt->pageSize) {\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }" if (parenthesized_expression "(uVar16 != pBt->pageSize)" ( (binary_expression "uVar16 != pBt->pageSize" identifier != (field_expression "pBt->pageSize" identifier -> field_identifier)) )) (compound_statement "{\n          sqlite3PagerUnrefPageOne(pPage1->pDbPage);\n          pBt->usableSize = uVar11;\n          pBt->pageSize = uVar16;\n          if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }\n          psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);\n          psVar12 = extraout_EDX_12;\n          goto LAB_00063279;\n        }" { (expression_statement "sqlite3PagerUnrefPageOne(pPage1->pDbPage);" (call_expression "sqlite3PagerUnrefPageOne(pPage1->pDbPage)" identifier (argument_list "(pPage1->pDbPage)" ( (field_expression "pPage1->pDbPage" identifier -> field_identifier) ))) ;) (expression_statement "pBt->usableSize = uVar11;" (assignment_expression "pBt->usableSize = uVar11" (field_expression "pBt->usableSize" identifier -> field_identifier) = identifier) ;) (expression_statement "pBt->pageSize = uVar16;" (assignment_expression "pBt->pageSize = uVar16" (field_expression "pBt->pageSize" identifier -> field_identifier) = identifier) ;) (if_statement "if (pBt->pTmpSpace != (u8 *)0x0) {\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }" if (parenthesized_expression "(pBt->pTmpSpace != (u8 *)0x0)" ( (binary_expression "pBt->pTmpSpace != (u8 *)0x0" (field_expression "pBt->pTmpSpace" identifier -> field_identifier) != (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            p_00 = pBt->pTmpSpace + -4;\n            pBt->pTmpSpace = p_00;\n            pcache1Free(p_00);\n            pBt->pTmpSpace = (u8 *)0x0;\n          }" { (expression_statement "p_00 = pBt->pTmpSpace + -4;" (assignment_expression "p_00 = pBt->pTmpSpace + -4" identifier = (binary_expression "pBt->pTmpSpace + -4" (field_expression "pBt->pTmpSpace" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pBt->pTmpSpace = p_00;" (assignment_expression "pBt->pTmpSpace = p_00" (field_expression "pBt->pTmpSpace" identifier -> field_identifier) = identifier) ;) (expression_statement "pcache1Free(p_00);" (call_expression "pcache1Free(p_00)" identifier (argument_list "(p_00)" ( identifier ))) ;) (expression_statement "pBt->pTmpSpace = (u8 *)0x0;" (assignment_expression "pBt->pTmpSpace = (u8 *)0x0" (field_expression "pBt->pTmpSpace" identifier -> field_identifier) = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1);" (assignment_expression "psVar18 = (sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1)" identifier = (cast_expression "(sqlite3_file *)sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1)" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3PagerSetPagesize(pBt->pPager,&pBt->pageSize,(uint)bVar1)" identifier (argument_list "(pBt->pPager,&pBt->pageSize,(uint)bVar1)" ( (field_expression "pBt->pPager" identifier -> field_identifier) , (pointer_expression "&pBt->pageSize" & (field_expression "pBt->pageSize" identifier -> field_identifier)) , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (expression_statement "psVar12 = extraout_EDX_12;" (assignment_expression "psVar12 = extraout_EDX_12" identifier = identifier) ;) (goto_statement "goto LAB_00063279;" goto statement_identifier ;) })) (if_statement "if (((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)) {\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }" if (parenthesized_expression "(((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44))" ( (binary_expression "((pBt->db->flags & 0x10000001) != 1) && (uVar5 < local_44)" (parenthesized_expression "((pBt->db->flags & 0x10000001) != 1)" ( (binary_expression "(pBt->db->flags & 0x10000001) != 1" (parenthesized_expression "(pBt->db->flags & 0x10000001)" ( (binary_expression "pBt->db->flags & 0x10000001" (field_expression "pBt->db->flags" (field_expression "pBt->db" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar5 < local_44)" ( (binary_expression "uVar5 < local_44" identifier < identifier) ))) )) (compound_statement "{\n          psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);\n          goto LAB_0006325c;\n        }" { (expression_statement "psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855);" (assignment_expression "psVar12 = (sqlite3_file *)sqlite3CorruptError(0x10855)" identifier = (cast_expression "(sqlite3_file *)sqlite3CorruptError(0x10855)" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3CorruptError(0x10855)" identifier (argument_list "(0x10855)" ( number_literal ))))) ;) (goto_statement "goto LAB_0006325c;" goto statement_identifier ;) })) (if_statement "if (0x1df < uVar11) {\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }" if (parenthesized_expression "(0x1df < uVar11)" ( (binary_expression "0x1df < uVar11" number_literal < identifier) )) (compound_statement "{\n          pBt->usableSize = uVar11;\n          pBt->autoVacuum = piVar4[0xd] != 0;\n          pBt->incrVacuum = piVar4[0x10] != 0;\nLAB_000630a8:\n          pBt->pPage1 = pPage1;\n          uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          pBt->maxLocal = uVar15;\n          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;\n          pBt->minLocal = uVar8;\n          pBt->minLeaf = uVar8;\n          uVar7 = '\x7f';\n          pBt->maxLeaf = (short)pBt->usableSize - 0x23;\n          psVar12 = (sqlite3_file *)(uint)uVar15;\n          if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }\n          pBt->max1bytePayload = uVar7;\n          pBt->nPage = local_44;\n          pMVar13 = pPage1;\n          goto LAB_00062cbf;\n        }" { (expression_statement "pBt->usableSize = uVar11;" (assignment_expression "pBt->usableSize = uVar11" (field_expression "pBt->usableSize" identifier -> field_identifier) = identifier) ;) (expression_statement "pBt->autoVacuum = piVar4[0xd] != 0;" (assignment_expression "pBt->autoVacuum = piVar4[0xd] != 0" (field_expression "pBt->autoVacuum" identifier -> field_identifier) = (binary_expression "piVar4[0xd] != 0" (subscript_expression "piVar4[0xd]" identifier [ number_literal ]) != number_literal)) ;) (expression_statement "pBt->incrVacuum = piVar4[0x10] != 0;" (assignment_expression "pBt->incrVacuum = piVar4[0x10] != 0" (field_expression "pBt->incrVacuum" identifier -> field_identifier) = (binary_expression "piVar4[0x10] != 0" (subscript_expression "piVar4[0x10]" identifier [ number_literal ]) != number_literal)) ;) (labeled_statement "LAB_000630a8:\n          pBt->pPage1 = pPage1;" statement_identifier : (expression_statement "pBt->pPage1 = pPage1;" (assignment_expression "pBt->pPage1 = pPage1" (field_expression "pBt->pPage1" identifier -> field_identifier) = identifier) ;)) (expression_statement "uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;" (assignment_expression "uVar15 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17" identifier = (binary_expression "(short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17" (cast_expression "(short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff)" ( (binary_expression "((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff" (parenthesized_expression "((pBt->usableSize + 0x3fffff4) * 0x40)" ( (binary_expression "(pBt->usableSize + 0x3fffff4) * 0x40" (parenthesized_expression "(pBt->usableSize + 0x3fffff4)" ( (binary_expression "pBt->usableSize + 0x3fffff4" (field_expression "pBt->usableSize" identifier -> field_identifier) + number_literal) )) * number_literal) )) / number_literal) ))) - number_literal)) ;) (expression_statement "pBt->maxLocal = uVar15;" (assignment_expression "pBt->maxLocal = uVar15" (field_expression "pBt->maxLocal" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;" (assignment_expression "uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17" identifier = (binary_expression "(short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17" (cast_expression "(short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff)" ( (binary_expression "((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff" (parenthesized_expression "((pBt->usableSize + 0x7fffff4) * 0x20)" ( (binary_expression "(pBt->usableSize + 0x7fffff4) * 0x20" (parenthesized_expression "(pBt->usableSize + 0x7fffff4)" ( (binary_expression "pBt->usableSize + 0x7fffff4" (field_expression "pBt->usableSize" identifier -> field_identifier) + number_literal) )) * number_literal) )) / number_literal) ))) - number_literal)) ;) (expression_statement "pBt->minLocal = uVar8;" (assignment_expression "pBt->minLocal = uVar8" (field_expression "pBt->minLocal" identifier -> field_identifier) = identifier) ;) (expression_statement "pBt->minLeaf = uVar8;" (assignment_expression "pBt->minLeaf = uVar8" (field_expression "pBt->minLeaf" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar7 = '\x7f';" (assignment_expression "uVar7 = '\x7f'" identifier = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "pBt->maxLeaf = (short)pBt->usableSize - 0x23;" (assignment_expression "pBt->maxLeaf = (short)pBt->usableSize - 0x23" (field_expression "pBt->maxLeaf" identifier -> field_identifier) = (binary_expression "(short)pBt->usableSize - 0x23" (cast_expression "(short)pBt->usableSize" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (field_expression "pBt->usableSize" identifier -> field_identifier)) - number_literal)) ;) (expression_statement "psVar12 = (sqlite3_file *)(uint)uVar15;" (assignment_expression "psVar12 = (sqlite3_file *)(uint)uVar15" identifier = (cast_expression "(sqlite3_file *)(uint)uVar15" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (uVar15 < 0x80) {\n            uVar7 = (u8)uVar15;\n          }" if (parenthesized_expression "(uVar15 < 0x80)" ( (binary_expression "uVar15 < 0x80" identifier < number_literal) )) (compound_statement "{\n            uVar7 = (u8)uVar15;\n          }" { (expression_statement "uVar7 = (u8)uVar15;" (assignment_expression "uVar7 = (u8)uVar15" identifier = (cast_expression "(u8)uVar15" ( (type_descriptor "u8" type_identifier) ) identifier)) ;) })) (expression_statement "pBt->max1bytePayload = uVar7;" (assignment_expression "pBt->max1bytePayload = uVar7" (field_expression "pBt->max1bytePayload" identifier -> field_identifier) = identifier) ;) (expression_statement "pBt->nPage = local_44;" (assignment_expression "pBt->nPage = local_44" (field_expression "pBt->nPage" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar13 = pPage1;" (assignment_expression "pMVar13 = pPage1" identifier = identifier) ;) (goto_statement "goto LAB_00062cbf;" goto statement_identifier ;) })) (labeled_statement "LAB_00062f1c:\n        psVar18 = (sqlite3_file *)0x1a;" statement_identifier : (expression_statement "psVar18 = (sqlite3_file *)0x1a;" (assignment_expression "psVar18 = (sqlite3_file *)0x1a" identifier = (cast_expression "(sqlite3_file *)0x1a" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "sqlite3PagerUnrefPageOne(pPage1->pDbPage);" (call_expression "sqlite3PagerUnrefPageOne(pPage1->pDbPage)" identifier (argument_list "(pPage1->pDbPage)" ( (field_expression "pPage1->pDbPage" identifier -> field_identifier) ))) ;) (expression_statement "pBt->pPage1 = (MemPage *)0x0;" (assignment_expression "pBt->pPage1 = (MemPage *)0x0" (field_expression "pBt->pPage1" identifier -> field_identifier) = (cast_expression "(MemPage *)0x0" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar12 = extraout_EDX_05;" (assignment_expression "psVar12 = extraout_EDX_05" identifier = identifier) ;) (labeled_statement "LAB_00062ce2:\n        iVar10 = CONCAT44(psVar12,psVar18);" statement_identifier : (expression_statement "iVar10 = CONCAT44(psVar12,psVar18);" (assignment_expression "iVar10 = CONCAT44(psVar12,psVar18)" identifier = (call_expression "CONCAT44(psVar12,psVar18)" identifier (argument_list "(psVar12,psVar18)" ( identifier , identifier )))) ;)) }) while (parenthesized_expression "(pBt->inTransaction == '\0')" ( (binary_expression "pBt->inTransaction == '\0'" (field_expression "pBt->inTransaction" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) ;)) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) }))) (if_statement "if ((pBt->btsFlags & 1) != 0) goto LAB_00062cdd;" if (parenthesized_expression "((pBt->btsFlags & 1) != 0)" ( (binary_expression "(pBt->btsFlags & 1) != 0" (parenthesized_expression "(pBt->btsFlags & 1)" ( (binary_expression "pBt->btsFlags & 1" (field_expression "pBt->btsFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00062cdd;" goto statement_identifier ;)) (expression_statement "iVar10 = CONCAT44(psVar12,pPager->errCode);" (assignment_expression "iVar10 = CONCAT44(psVar12,pPager->errCode)" identifier = (call_expression "CONCAT44(psVar12,pPager->errCode)" identifier (argument_list "(psVar12,pPager->errCode)" ( identifier , (field_expression "pPager->errCode" identifier -> field_identifier) )))) ;) (if_statement "if (pPager->errCode != 0) {\nLAB_00062e70:\n      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);\n      if ((int)iVar10 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }\n      psVar18 = (sqlite3_file *)0x205;\n      goto LAB_00062c00;\n    }" if (parenthesized_expression "(pPager->errCode != 0)" ( (binary_expression "pPager->errCode != 0" (field_expression "pPager->errCode" identifier -> field_identifier) != number_literal) )) (compound_statement "{\nLAB_00062e70:\n      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);\n      if ((int)iVar10 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }\n      psVar18 = (sqlite3_file *)0x205;\n      goto LAB_00062c00;\n    }" { (labeled_statement "LAB_00062e70:\n      uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);" statement_identifier : (expression_statement "uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20);" (assignment_expression "uVar17 = (undefined4)((ulonglong)iVar10 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)iVar10 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)iVar10 >> 0x20)" ( (binary_expression "(ulonglong)iVar10 >> 0x20" (cast_expression "(ulonglong)iVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (if_statement "if ((int)iVar10 != 0x205) goto LAB_00062d35;" if (parenthesized_expression "((int)iVar10 != 0x205)" ( (binary_expression "(int)iVar10 != 0x205" (cast_expression "(int)iVar10" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;)) (labeled_statement "LAB_00062e7c:\n      if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }" statement_identifier : (if_statement "if (pBt->inTransaction == '\0') {\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }" if (parenthesized_expression "(pBt->inTransaction == '\0')" ( (binary_expression "pBt->inTransaction == '\0'" (field_expression "pBt->inTransaction" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar10 = CONCAT44(uVar17,5);\n        goto LAB_00062cec;\n      }" { (expression_statement "iVar10 = CONCAT44(uVar17,5);" (assignment_expression "iVar10 = CONCAT44(uVar17,5)" identifier = (call_expression "CONCAT44(uVar17,5)" identifier (argument_list "(uVar17,5)" ( identifier , number_literal )))) ;) (goto_statement "goto LAB_00062cec;" goto statement_identifier ;) }))) (expression_statement "psVar18 = (sqlite3_file *)0x205;" (assignment_expression "psVar18 = (sqlite3_file *)0x205" identifier = (cast_expression "(sqlite3_file *)0x205" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) })) (expression_statement "pPager->subjInMemory = p->db->temp_store == '\x02';" (assignment_expression "pPager->subjInMemory = p->db->temp_store == '\x02'" (field_expression "pPager->subjInMemory" identifier -> field_identifier) = (binary_expression "p->db->temp_store == '\x02'" (field_expression "p->db->temp_store" (field_expression "p->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\x02'" ' escape_sequence '))) ;) (if_statement "if (pPager->eState == '\x01') {\n      pWVar14 = pPager->pWal;\n      if (pWVar14 != (Wal *)0x0) {\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }\n      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      PVar6 = pPager->dbSize;\n      pPager->eState = '\x02';\n      *(undefined4 *)&pPager->journalOff = 0;\n      *(undefined4 *)((int)&pPager->journalOff + 4) = 0;\n      pPager->dbHintSize = PVar6;\n      pPager->dbFileSize = PVar6;\n      pPager->dbOrigSize = PVar6;\n    }" if (parenthesized_expression "(pPager->eState == '\x01')" ( (binary_expression "pPager->eState == '\x01'" (field_expression "pPager->eState" identifier -> field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      pWVar14 = pPager->pWal;\n      if (pWVar14 != (Wal *)0x0) {\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }\n      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      PVar6 = pPager->dbSize;\n      pPager->eState = '\x02';\n      *(undefined4 *)&pPager->journalOff = 0;\n      *(undefined4 *)((int)&pPager->journalOff + 4) = 0;\n      pPager->dbHintSize = PVar6;\n      pPager->dbFileSize = PVar6;\n      pPager->dbOrigSize = PVar6;\n    }" { (expression_statement "pWVar14 = pPager->pWal;" (assignment_expression "pWVar14 = pPager->pWal" identifier = (field_expression "pPager->pWal" identifier -> field_identifier)) ;) (if_statement "if (pWVar14 != (Wal *)0x0) {\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }" if (parenthesized_expression "(pWVar14 != (Wal *)0x0)" ( (binary_expression "pWVar14 != (Wal *)0x0" identifier != (cast_expression "(Wal *)0x0" ( (type_descriptor "Wal *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }\n        if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }\n        if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;\n        pWVar14->writeLock = '\x01';\n        iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);\n        if (iVar10 == 0) goto LAB_00063076;\n        uVar17 = extraout_EDX_07;\n        if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }\n        pWVar14->writeLock = '\0';\n        goto LAB_00062e7c;\n      }" { (if_statement "if ((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')) {\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }" if (parenthesized_expression "((pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0'))" ( (binary_expression "(pPager->exclusiveMode != '\0') && (pWVar14->exclusiveMode == '\0')" (parenthesized_expression "(pPager->exclusiveMode != '\0')" ( (binary_expression "pPager->exclusiveMode != '\0'" (field_expression "pPager->exclusiveMode" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pWVar14->exclusiveMode == '\0')" ( (binary_expression "pWVar14->exclusiveMode == '\0'" (field_expression "pWVar14->exclusiveMode" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }\n          psVar12 = pWVar14->pDbFd;\n          if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }\n          pWVar14->exclusiveMode = '\x01';\n          pWVar14 = pPager->pWal;\n        }" { (if_statement "if ((pPager->eLock == 5) || (pPager->eLock < 4)) {\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }" if (parenthesized_expression "((pPager->eLock == 5) || (pPager->eLock < 4))" ( (binary_expression "(pPager->eLock == 5) || (pPager->eLock < 4)" (parenthesized_expression "(pPager->eLock == 5)" ( (binary_expression "pPager->eLock == 5" (field_expression "pPager->eLock" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(pPager->eLock < 4)" ( (binary_expression "pPager->eLock < 4" (field_expression "pPager->eLock" identifier -> field_identifier) < number_literal) ))) )) (compound_statement "{\n            iVar10 = pagerLockDb(pPager,4);\n            iVar10 = CONCAT44(extraout_EDX_09,iVar10);\n            if (iVar10 != 0) goto LAB_00062e70;\n            pWVar14 = pPager->pWal;\n          }" { (expression_statement "iVar10 = pagerLockDb(pPager,4);" (assignment_expression "iVar10 = pagerLockDb(pPager,4)" identifier = (call_expression "pagerLockDb(pPager,4)" identifier (argument_list "(pPager,4)" ( identifier , number_literal )))) ;) (expression_statement "iVar10 = CONCAT44(extraout_EDX_09,iVar10);" (assignment_expression "iVar10 = CONCAT44(extraout_EDX_09,iVar10)" identifier = (call_expression "CONCAT44(extraout_EDX_09,iVar10)" identifier (argument_list "(extraout_EDX_09,iVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 != 0) goto LAB_00062e70;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062e70;" goto statement_identifier ;)) (expression_statement "pWVar14 = pPager->pWal;" (assignment_expression "pWVar14 = pPager->pWal" identifier = (field_expression "pPager->pWal" identifier -> field_identifier)) ;) })) (expression_statement "psVar12 = pWVar14->pDbFd;" (assignment_expression "psVar12 = pWVar14->pDbFd" identifier = (field_expression "pWVar14->pDbFd" identifier -> field_identifier)) ;) (if_statement "if (pWVar14->exclusiveMode == '\0') {\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }" if (parenthesized_expression "(pWVar14->exclusiveMode == '\0')" ( (binary_expression "pWVar14->exclusiveMode == '\0'" (field_expression "pWVar14->exclusiveMode" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            (*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);\n            psVar12 = extraout_EDX_06;\n          }" { (expression_statement "(*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5);" (call_expression "(*psVar12->pMethods->xShmLock)(psVar12,pWVar14->readLock + 3,1,5)" (parenthesized_expression "(*psVar12->pMethods->xShmLock)" ( (pointer_expression "*psVar12->pMethods->xShmLock" * (field_expression "psVar12->pMethods->xShmLock" (field_expression "psVar12->pMethods" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(psVar12,pWVar14->readLock + 3,1,5)" ( identifier , (binary_expression "pWVar14->readLock + 3" (field_expression "pWVar14->readLock" identifier -> field_identifier) + number_literal) , number_literal , number_literal ))) ;) (expression_statement "psVar12 = extraout_EDX_06;" (assignment_expression "psVar12 = extraout_EDX_06" identifier = identifier) ;) })) (expression_statement "pWVar14->exclusiveMode = '\x01';" (assignment_expression "pWVar14->exclusiveMode = '\x01'" (field_expression "pWVar14->exclusiveMode" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pWVar14 = pPager->pWal;" (assignment_expression "pWVar14 = pPager->pWal" identifier = (field_expression "pPager->pWal" identifier -> field_identifier)) ;) })) (if_statement "if (pWVar14->readOnly != '\0') {\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }" if (parenthesized_expression "(pWVar14->readOnly != '\0')" ( (binary_expression "pWVar14->readOnly != '\0'" (field_expression "pWVar14->readOnly" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;\n          goto LAB_00062ce2;\n        }" { (labeled_statement "LAB_00062cdd:\n          psVar18 = (sqlite3_file *)&DAT_00000008;" statement_identifier : (expression_statement "psVar18 = (sqlite3_file *)&DAT_00000008;" (assignment_expression "psVar18 = (sqlite3_file *)&DAT_00000008" identifier = (cast_expression "(sqlite3_file *)&DAT_00000008" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) ;)) (goto_statement "goto LAB_00062ce2;" goto statement_identifier ;) })) (if_statement "if ((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           ) goto LAB_00062e70;" if (parenthesized_expression "((pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)\n           )" ( (binary_expression "(pWVar14->exclusiveMode == '\0') &&\n           (iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)" (parenthesized_expression "(pWVar14->exclusiveMode == '\0')" ( (binary_expression "pWVar14->exclusiveMode == '\0'" (field_expression "pWVar14->exclusiveMode" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0)" ( (comma_expression "iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10), (int)iVar10 != 0" (assignment_expression "iVar10 = (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10)" identifier = (call_expression "(*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,10)" (parenthesized_expression "(*pWVar14->pDbFd->pMethods->xShmLock)" ( (pointer_expression "*pWVar14->pDbFd->pMethods->xShmLock" * (field_expression "pWVar14->pDbFd->pMethods->xShmLock" (field_expression "pWVar14->pDbFd->pMethods" (field_expression "pWVar14->pDbFd" identifier -> field_identifier) -> field_identifier) -> field_identifier)) )) (argument_list "(pWVar14->pDbFd,0,1,10)" ( (field_expression "pWVar14->pDbFd" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) , (binary_expression "(int)iVar10 != 0" (cast_expression "(int)iVar10" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal)) ))) )) (goto_statement "goto LAB_00062e70;" goto statement_identifier ;)) (expression_statement "pWVar14->writeLock = '\x01';" (assignment_expression "pWVar14->writeLock = '\x01'" (field_expression "pWVar14->writeLock" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30);" (assignment_expression "iVar10 = memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30)" identifier = (call_expression "memcmp(&pWVar14->hdr,*pWVar14->apWiData,0x30)" identifier (argument_list "(&pWVar14->hdr,*pWVar14->apWiData,0x30)" ( (pointer_expression "&pWVar14->hdr" & (field_expression "pWVar14->hdr" identifier -> field_identifier)) , (pointer_expression "*pWVar14->apWiData" * (field_expression "pWVar14->apWiData" identifier -> field_identifier)) , number_literal )))) ;) (if_statement "if (iVar10 == 0) goto LAB_00063076;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00063076;" goto statement_identifier ;)) (expression_statement "uVar17 = extraout_EDX_07;" (assignment_expression "uVar17 = extraout_EDX_07" identifier = identifier) ;) (if_statement "if (pWVar14->exclusiveMode == '\0') {\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }" if (parenthesized_expression "(pWVar14->exclusiveMode == '\0')" ( (binary_expression "pWVar14->exclusiveMode == '\0'" (field_expression "pWVar14->exclusiveMode" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);\n          uVar17 = extraout_EDX_11;\n        }" { (expression_statement "(*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9);" (call_expression "(*pWVar14->pDbFd->pMethods->xShmLock)(pWVar14->pDbFd,0,1,9)" (parenthesized_expression "(*pWVar14->pDbFd->pMethods->xShmLock)" ( (pointer_expression "*pWVar14->pDbFd->pMethods->xShmLock" * (field_expression "pWVar14->pDbFd->pMethods->xShmLock" (field_expression "pWVar14->pDbFd->pMethods" (field_expression "pWVar14->pDbFd" identifier -> field_identifier) -> field_identifier) -> field_identifier)) )) (argument_list "(pWVar14->pDbFd,0,1,9)" ( (field_expression "pWVar14->pDbFd" identifier -> field_identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "uVar17 = extraout_EDX_11;" (assignment_expression "uVar17 = extraout_EDX_11" identifier = identifier) ;) })) (expression_statement "pWVar14->writeLock = '\0';" (assignment_expression "pWVar14->writeLock = '\0'" (field_expression "pWVar14->writeLock" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00062e7c;" goto statement_identifier ;) })) (if_statement "if ((pPager->eLock < 2) || (pPager->eLock == 5)) {\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }" if (parenthesized_expression "((pPager->eLock < 2) || (pPager->eLock == 5))" ( (binary_expression "(pPager->eLock < 2) || (pPager->eLock == 5)" (parenthesized_expression "(pPager->eLock < 2)" ( (binary_expression "pPager->eLock < 2" (field_expression "pPager->eLock" identifier -> field_identifier) < number_literal) )) || (parenthesized_expression "(pPager->eLock == 5)" ( (binary_expression "pPager->eLock == 5" (field_expression "pPager->eLock" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n        iVar10 = pagerLockDb(pPager,2);\n        uVar17 = extraout_EDX_08;\n        if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);\n        if (iVar10 != 0) goto LAB_00062e70;\n      }" { (expression_statement "iVar10 = pagerLockDb(pPager,2);" (assignment_expression "iVar10 = pagerLockDb(pPager,2)" identifier = (call_expression "pagerLockDb(pPager,2)" identifier (argument_list "(pPager,2)" ( identifier , number_literal )))) ;) (expression_statement "uVar17 = extraout_EDX_08;" (assignment_expression "uVar17 = extraout_EDX_08" identifier = identifier) ;) (if_statement "if ((1 < extraout_EDX) && (iVar10 == 0)) goto LAB_00062e57;" if (parenthesized_expression "((1 < extraout_EDX) && (iVar10 == 0))" ( (binary_expression "(1 < extraout_EDX) && (iVar10 == 0)" (parenthesized_expression "(1 < extraout_EDX)" ( (binary_expression "1 < extraout_EDX" number_literal < identifier) )) && (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00062e57;" goto statement_identifier ;)) (labeled_statement "LAB_00062e67:\n        iVar10 = CONCAT44(uVar17,iVar10);" statement_identifier : (expression_statement "iVar10 = CONCAT44(uVar17,iVar10);" (assignment_expression "iVar10 = CONCAT44(uVar17,iVar10)" identifier = (call_expression "CONCAT44(uVar17,iVar10)" identifier (argument_list "(uVar17,iVar10)" ( identifier , identifier )))) ;)) (if_statement "if (iVar10 != 0) goto LAB_00062e70;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062e70;" goto statement_identifier ;)) }) (else_clause "else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }" else (if_statement "if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }" if (parenthesized_expression "(1 < extraout_EDX)" ( (binary_expression "1 < extraout_EDX" number_literal < identifier) )) (compound_statement "{\nLAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);\n        uVar17 = extraout_EDX_03;\n        goto LAB_00062e67;\n      }" { (labeled_statement "LAB_00062e57:\n        iVar10 = pager_wait_on_lock(pPager,4);" statement_identifier : (expression_statement "iVar10 = pager_wait_on_lock(pPager,4);" (assignment_expression "iVar10 = pager_wait_on_lock(pPager,4)" identifier = (call_expression "pager_wait_on_lock(pPager,4)" identifier (argument_list "(pPager,4)" ( identifier , number_literal )))) ;)) (expression_statement "uVar17 = extraout_EDX_03;" (assignment_expression "uVar17 = extraout_EDX_03" identifier = identifier) ;) (goto_statement "goto LAB_00062e67;" goto statement_identifier ;) })))) (labeled_statement "LAB_00063076:\n      PVar6 = pPager->dbSize;" statement_identifier : (expression_statement "PVar6 = pPager->dbSize;" (assignment_expression "PVar6 = pPager->dbSize" identifier = (field_expression "pPager->dbSize" identifier -> field_identifier)) ;)) (expression_statement "pPager->eState = '\x02';" (assignment_expression "pPager->eState = '\x02'" (field_expression "pPager->eState" identifier -> field_identifier) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)&pPager->journalOff = 0;" (assignment_expression "*(undefined4 *)&pPager->journalOff = 0" (pointer_expression "*(undefined4 *)&pPager->journalOff" * (cast_expression "(undefined4 *)&pPager->journalOff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPager->journalOff" & (field_expression "pPager->journalOff" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pPager->journalOff + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pPager->journalOff + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pPager->journalOff + 4)" * (cast_expression "(undefined4 *)((int)&pPager->journalOff + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPager->journalOff + 4)" ( (binary_expression "(int)&pPager->journalOff + 4" (cast_expression "(int)&pPager->journalOff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPager->journalOff" & (field_expression "pPager->journalOff" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pPager->dbHintSize = PVar6;" (assignment_expression "pPager->dbHintSize = PVar6" (field_expression "pPager->dbHintSize" identifier -> field_identifier) = identifier) ;) (expression_statement "pPager->dbFileSize = PVar6;" (assignment_expression "pPager->dbFileSize = PVar6" (field_expression "pPager->dbFileSize" identifier -> field_identifier) = identifier) ;) (expression_statement "pPager->dbOrigSize = PVar6;" (assignment_expression "pPager->dbOrigSize = PVar6" (field_expression "pPager->dbOrigSize" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (pBt->nPage == 0) {\n      psVar18 = (sqlite3_file *)newDatabase(pBt);\n      psVar12 = extraout_EDX_02;\n      goto LAB_00062dc8;\n    }" if (parenthesized_expression "(pBt->nPage == 0)" ( (binary_expression "pBt->nPage == 0" (field_expression "pBt->nPage" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      psVar18 = (sqlite3_file *)newDatabase(pBt);\n      psVar12 = extraout_EDX_02;\n      goto LAB_00062dc8;\n    }" { (expression_statement "psVar18 = (sqlite3_file *)newDatabase(pBt);" (assignment_expression "psVar18 = (sqlite3_file *)newDatabase(pBt)" identifier = (cast_expression "(sqlite3_file *)newDatabase(pBt)" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "newDatabase(pBt)" identifier (argument_list "(pBt)" ( identifier ))))) ;) (expression_statement "psVar12 = extraout_EDX_02;" (assignment_expression "psVar12 = extraout_EDX_02" identifier = identifier) ;) (goto_statement "goto LAB_00062dc8;" goto statement_identifier ;) })) (labeled_statement "LAB_00062dd0:\n    if ((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')) {\n      (p->lock).eLock = '\x01';\n      (p->lock).pNext = pBt->pLock;\n      pBt->pLock = &p->lock;\n    }" statement_identifier : (if_statement "if ((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')) {\n      (p->lock).eLock = '\x01';\n      (p->lock).pNext = pBt->pLock;\n      pBt->pLock = &p->lock;\n    }" if (parenthesized_expression "((p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0'))" ( (binary_expression "(p->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')" (parenthesized_expression "(p->inTrans == '\0')" ( (binary_expression "p->inTrans == '\0'" (field_expression "p->inTrans" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0')" ( (comma_expression "pBt->nTransaction = pBt->nTransaction + 1, p->sharable != '\0'" (assignment_expression "pBt->nTransaction = pBt->nTransaction + 1" (field_expression "pBt->nTransaction" identifier -> field_identifier) = (binary_expression "pBt->nTransaction + 1" (field_expression "pBt->nTransaction" identifier -> field_identifier) + number_literal)) , (binary_expression "p->sharable != '\0'" (field_expression "p->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      (p->lock).eLock = '\x01';\n      (p->lock).pNext = pBt->pLock;\n      pBt->pLock = &p->lock;\n    }" { (expression_statement "(p->lock).eLock = '\x01';" (assignment_expression "(p->lock).eLock = '\x01'" (field_expression "(p->lock).eLock" (parenthesized_expression "(p->lock)" ( (field_expression "p->lock" identifier -> field_identifier) )) . field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(p->lock).pNext = pBt->pLock;" (assignment_expression "(p->lock).pNext = pBt->pLock" (field_expression "(p->lock).pNext" (parenthesized_expression "(p->lock)" ( (field_expression "p->lock" identifier -> field_identifier) )) . field_identifier) = (field_expression "pBt->pLock" identifier -> field_identifier)) ;) (expression_statement "pBt->pLock = &p->lock;" (assignment_expression "pBt->pLock = &p->lock" (field_expression "pBt->pLock" identifier -> field_identifier) = (pointer_expression "&p->lock" & (field_expression "p->lock" identifier -> field_identifier))) ;) }))) (expression_statement "bVar1 = pBt->inTransaction;" (assignment_expression "bVar1 = pBt->inTransaction" identifier = (field_expression "pBt->inTransaction" identifier -> field_identifier)) ;) (if_statement "if (extraout_EDX == 0) {\n      p->inTrans = '\x01';\n      if (bVar1 == 0) {\n        pBt->inTransaction = '\x01';\n      }\n      goto LAB_00062e08;\n    }" if (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) )) (compound_statement "{\n      p->inTrans = '\x01';\n      if (bVar1 == 0) {\n        pBt->inTransaction = '\x01';\n      }\n      goto LAB_00062e08;\n    }" { (expression_statement "p->inTrans = '\x01';" (assignment_expression "p->inTrans = '\x01'" (field_expression "p->inTrans" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (bVar1 == 0) {\n        pBt->inTransaction = '\x01';\n      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        pBt->inTransaction = '\x01';\n      }" { (expression_statement "pBt->inTransaction = '\x01';" (assignment_expression "pBt->inTransaction = '\x01'" (field_expression "pBt->inTransaction" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (goto_statement "goto LAB_00062e08;" goto statement_identifier ;) })) (expression_statement "p->inTrans = '\x02';" (assignment_expression "p->inTrans = '\x02'" (field_expression "p->inTrans" identifier -> field_identifier) = (char_literal "'\x02'" ' escape_sequence ')) ;) (if_statement "if (bVar1 < 2) {\n      pBt->inTransaction = '\x02';\n    }" if (parenthesized_expression "(bVar1 < 2)" ( (binary_expression "bVar1 < 2" identifier < number_literal) )) (compound_statement "{\n      pBt->inTransaction = '\x02';\n    }" { (expression_statement "pBt->inTransaction = '\x02';" (assignment_expression "pBt->inTransaction = '\x02'" (field_expression "pBt->inTransaction" identifier -> field_identifier) = (char_literal "'\x02'" ' escape_sequence ')) ;) })) (expression_statement "pMVar13 = pBt->pPage1;" (assignment_expression "pMVar13 = pBt->pPage1" identifier = (field_expression "pBt->pPage1" identifier -> field_identifier)) ;) (expression_statement "pBt->pWriter = p;" (assignment_expression "pBt->pWriter = p" (field_expression "pBt->pWriter" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar15 = pBt->btsFlags & 0xffbf;" (assignment_expression "uVar15 = pBt->btsFlags & 0xffbf" identifier = (binary_expression "pBt->btsFlags & 0xffbf" (field_expression "pBt->btsFlags" identifier -> field_identifier) & number_literal)) ;) (if_statement "if (1 < extraout_EDX) {\n      uVar15 = uVar15 | 0x40;\n    }" if (parenthesized_expression "(1 < extraout_EDX)" ( (binary_expression "1 < extraout_EDX" number_literal < identifier) )) (compound_statement "{\n      uVar15 = uVar15 | 0x40;\n    }" { (expression_statement "uVar15 = uVar15 | 0x40;" (assignment_expression "uVar15 = uVar15 | 0x40" identifier = (binary_expression "uVar15 | 0x40" identifier | number_literal)) ;) })) (expression_statement "pBt->btsFlags = uVar15;" (assignment_expression "pBt->btsFlags = uVar15" (field_expression "pBt->btsFlags" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar5 = *(uint *)(pMVar13->aData + 0x1c);" (assignment_expression "uVar5 = *(uint *)(pMVar13->aData + 0x1c)" identifier = (pointer_expression "*(uint *)(pMVar13->aData + 0x1c)" * (cast_expression "(uint *)(pMVar13->aData + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pMVar13->aData + 0x1c)" ( (binary_expression "pMVar13->aData + 0x1c" (field_expression "pMVar13->aData" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if (pBt->nPage ==\n        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18))\n    goto LAB_00062d40;" if (parenthesized_expression "(pBt->nPage ==\n        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18))" ( (binary_expression "pBt->nPage ==\n        (uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18)" (field_expression "pBt->nPage" identifier -> field_identifier) == (parenthesized_expression "(uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18)" ( (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal)) ))) )) (goto_statement "goto LAB_00062d40;" goto statement_identifier ;)) (expression_statement "psVar18 = (sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage);" (assignment_expression "psVar18 = (sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage)" identifier = (cast_expression "(sqlite3_file *)sqlite3PagerWrite(pMVar13->pDbPage)" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3PagerWrite(pMVar13->pDbPage)" identifier (argument_list "(pMVar13->pDbPage)" ( (field_expression "pMVar13->pDbPage" identifier -> field_identifier) ))))) ;) (if_statement "if (psVar18 != (sqlite3_file *)0x0) goto LAB_00062c00;" if (parenthesized_expression "(psVar18 != (sqlite3_file *)0x0)" ( (binary_expression "psVar18 != (sqlite3_file *)0x0" identifier != (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) (expression_statement "uVar5 = pBt->nPage;" (assignment_expression "uVar5 = pBt->nPage" identifier = (field_expression "pBt->nPage" identifier -> field_identifier)) ;) (expression_statement "*(uint *)(pMVar13->aData + 0x1c) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "*(uint *)(pMVar13->aData + 0x1c) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (pointer_expression "*(uint *)(pMVar13->aData + 0x1c)" * (cast_expression "(uint *)(pMVar13->aData + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pMVar13->aData + 0x1c)" ( (binary_expression "pMVar13->aData + 0x1c" (field_expression "pMVar13->aData" identifier -> field_identifier) + number_literal) )))) = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (if_statement "if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;" if (parenthesized_expression "(extraout_ECX != (uint *)0x0)" ( (binary_expression "extraout_ECX != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062d48;" goto statement_identifier ;)) (labeled_statement "LAB_00062d5d:\n    iVar10 = p->db->nSavepoint;" statement_identifier : (expression_statement "iVar10 = p->db->nSavepoint;" (assignment_expression "iVar10 = p->db->nSavepoint" identifier = (field_expression "p->db->nSavepoint" (field_expression "p->db" identifier -> field_identifier) -> field_identifier)) ;)) (if_statement "if ((pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0')) {\n      psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);\n      goto LAB_00062c00;\n    }" if (parenthesized_expression "((pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0'))" ( (binary_expression "(pPager->nSavepoint < iVar10) && (pPager->useJournal != '\0')" (parenthesized_expression "(pPager->nSavepoint < iVar10)" ( (binary_expression "pPager->nSavepoint < iVar10" (field_expression "pPager->nSavepoint" identifier -> field_identifier) < identifier) )) && (parenthesized_expression "(pPager->useJournal != '\0')" ( (binary_expression "pPager->useJournal != '\0'" (field_expression "pPager->useJournal" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);\n      goto LAB_00062c00;\n    }" { (expression_statement "psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10);" (assignment_expression "psVar18 = (sqlite3_file *)pagerOpenSavepoint(pPager,iVar10)" identifier = (cast_expression "(sqlite3_file *)pagerOpenSavepoint(pPager,iVar10)" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "pagerOpenSavepoint(pPager,iVar10)" identifier (argument_list "(pPager,iVar10)" ( identifier , identifier ))))) ;) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) })) }))) (expression_statement "psVar18 = (sqlite3_file *)0x0;" (assignment_expression "psVar18 = (sqlite3_file *)0x0" identifier = (cast_expression "(sqlite3_file *)0x0" ( (type_descriptor "sqlite3_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00062c00:\n  if (p->sharable != '\0') {\n    piVar4 = &p->wantToLock;\n    *piVar4 = *piVar4 + -1;\n    if (*piVar4 == 0) {\n      sqlite3BtreeLeave(p);\n    }\n  }" statement_identifier : (if_statement "if (p->sharable != '\0') {\n    piVar4 = &p->wantToLock;\n    *piVar4 = *piVar4 + -1;\n    if (*piVar4 == 0) {\n      sqlite3BtreeLeave(p);\n    }\n  }" if (parenthesized_expression "(p->sharable != '\0')" ( (binary_expression "p->sharable != '\0'" (field_expression "p->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    piVar4 = &p->wantToLock;\n    *piVar4 = *piVar4 + -1;\n    if (*piVar4 == 0) {\n      sqlite3BtreeLeave(p);\n    }\n  }" { (expression_statement "piVar4 = &p->wantToLock;" (assignment_expression "piVar4 = &p->wantToLock" identifier = (pointer_expression "&p->wantToLock" & (field_expression "p->wantToLock" identifier -> field_identifier))) ;) (expression_statement "*piVar4 = *piVar4 + -1;" (assignment_expression "*piVar4 = *piVar4 + -1" (pointer_expression "*piVar4" * identifier) = (binary_expression "*piVar4 + -1" (pointer_expression "*piVar4" * identifier) + number_literal)) ;) (if_statement "if (*piVar4 == 0) {\n      sqlite3BtreeLeave(p);\n    }" if (parenthesized_expression "(*piVar4 == 0)" ( (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n      sqlite3BtreeLeave(p);\n    }" { (expression_statement "sqlite3BtreeLeave(p);" (call_expression "sqlite3BtreeLeave(p)" identifier (argument_list "(p)" ( identifier ))) ;) })) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)psVar18;\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 (int)psVar18;\n  }" { (return_statement "return (int)psVar18;" return (cast_expression "(int)psVar18" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int __regparm3 FUN_00062b70(int *param_1)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  ushort uVar9;\n  short sVar10;\n  int iVar11;\n  uint uVar12;\n  uint *extraout_ECX;\n  ushort uVar13;\n  int extraout_EDX;\n  uint uVar14;\n  int iVar15;\n  int in_GS_OFFSET;\n  uint local_44;\n  int local_28;\n  \n  FUN_000a94ff();\n  piVar3 = (int *)param_1[1];\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = *piVar3;\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }\n  if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }\n  iVar15 = 0;\nLAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar15;\n}\n\n" (function_definition "int __regparm3 FUN_00062b70(int *param_1)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  ushort uVar9;\n  short sVar10;\n  int iVar11;\n  uint uVar12;\n  uint *extraout_ECX;\n  ushort uVar13;\n  int extraout_EDX;\n  uint uVar14;\n  int iVar15;\n  int in_GS_OFFSET;\n  uint local_44;\n  int local_28;\n  \n  FUN_000a94ff();\n  piVar3 = (int *)param_1[1];\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = *piVar3;\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }\n  if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }\n  iVar15 = 0;\nLAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar15;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00062b70(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  ushort uVar9;\n  short sVar10;\n  int iVar11;\n  uint uVar12;\n  uint *extraout_ECX;\n  ushort uVar13;\n  int extraout_EDX;\n  uint uVar14;\n  int iVar15;\n  int in_GS_OFFSET;\n  uint local_44;\n  int local_28;\n  \n  FUN_000a94ff();\n  piVar3 = (int *)param_1[1];\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = *piVar3;\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }\n  if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }\n  iVar15 = 0;\nLAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar15;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "ushort uVar9;" type_identifier identifier ;) (declaration "short sVar10;" (sized_type_specifier "short" short) identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "ushort uVar13;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "FUN_000a94ff();" (call_expression "FUN_000a94ff()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3 = (int *)param_1[1];" (assignment_expression "piVar3 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(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 "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }" if (parenthesized_expression "(*(char *)((int)param_1 + 9) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 9) != '\0'" (pointer_expression "*(char *)((int)param_1 + 9)" * (cast_expression "(char *)((int)param_1 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 9)" ( (binary_expression "(int)param_1 + 9" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00027820();\n  }" { (expression_statement "FUN_00027820();" (call_expression "FUN_00027820()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }" if (parenthesized_expression "((char)param_1[2] == '\x02')" ( (binary_expression "(char)param_1[2] == '\x02'" (cast_expression "(char)param_1[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }" { (labeled_statement "LAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }" statement_identifier : (if_statement "if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }" if (parenthesized_expression "(extraout_ECX != (uint *)0x0)" ( (binary_expression "extraout_ECX != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }" { (labeled_statement "LAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);" statement_identifier : (expression_statement "uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);" (assignment_expression "uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28)" identifier = (pointer_expression "*(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28)" * (cast_expression "(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(piVar3[3] + 0x38) + 0x28)" ( (binary_expression "*(int *)(piVar3[3] + 0x38) + 0x28" (pointer_expression "*(int *)(piVar3[3] + 0x38)" * (cast_expression "(int *)(piVar3[3] + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[3] + 0x38)" ( (binary_expression "piVar3[3] + 0x38" (subscript_expression "piVar3[3]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "*extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "*extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (pointer_expression "*extraout_ECX" * identifier) = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) }))) (if_statement "if (extraout_EDX != 0) goto LAB_00062d5d;" if (parenthesized_expression "(extraout_EDX != 0)" ( (binary_expression "extraout_EDX != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062d5d;" goto statement_identifier ;)) }) (else_clause "else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }" else (compound_statement "{\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }" { (if_statement "if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }" if (parenthesized_expression "(((char)param_1[2] == '\x01') && (extraout_EDX == 0))" ( (binary_expression "((char)param_1[2] == '\x01') && (extraout_EDX == 0)" (parenthesized_expression "((char)param_1[2] == '\x01')" ( (binary_expression "(char)param_1[2] == '\x01'" (cast_expression "(char)param_1[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }" { (labeled_statement "LAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }" statement_identifier : (if_statement "if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }" if (parenthesized_expression "(extraout_ECX == (uint *)0x0)" ( (binary_expression "extraout_ECX == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00062d48;" goto statement_identifier ;) })) (expression_statement "uVar9 = *(ushort *)(piVar3 + 6);" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6)" identifier = (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) ))))) ;) (if_statement "if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }" if (parenthesized_expression "(((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0'))" ( (binary_expression "((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')" (parenthesized_expression "((*(byte *)(*param_1 + 0x1f) & 2) == 0)" ( (binary_expression "(*(byte *)(*param_1 + 0x1f) & 2) == 0" (parenthesized_expression "(*(byte *)(*param_1 + 0x1f) & 2)" ( (binary_expression "*(byte *)(*param_1 + 0x1f) & 2" (pointer_expression "*(byte *)(*param_1 + 0x1f)" * (cast_expression "(byte *)(*param_1 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x1f)" ( (binary_expression "*param_1 + 0x1f" (pointer_expression "*param_1" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)(iVar4 + 0xe) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0xe) != '\0'" (pointer_expression "*(char *)(iVar4 + 0xe)" * (cast_expression "(char *)(iVar4 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe)" ( (binary_expression "iVar4 + 0xe" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }" { (if_statement "if ((uVar9 & 1) == 0) goto LAB_00062c49;" if (parenthesized_expression "((uVar9 & 1) == 0)" ( (binary_expression "(uVar9 & 1) == 0" (parenthesized_expression "(uVar9 & 1)" ( (binary_expression "uVar9 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00062c49;" goto statement_identifier ;)) (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" identifier = number_literal) ;) (if_statement "if (extraout_EDX != 0) goto LAB_00062c00;" if (parenthesized_expression "(extraout_EDX != 0)" ( (binary_expression "extraout_EDX != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) (labeled_statement "LAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }" statement_identifier : (if_statement "if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }" if (parenthesized_expression "((uVar9 & 0x80) != 0)" ( (binary_expression "(uVar9 & 0x80) != 0" (parenthesized_expression "(uVar9 & 0x80)" ( (binary_expression "uVar9 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }" { (labeled_statement "LAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];" statement_identifier : (expression_statement "iVar11 = *(int *)piVar3[0x14];" (assignment_expression "iVar11 = *(int *)piVar3[0x14]" identifier = (pointer_expression "*(int *)piVar3[0x14]" * (cast_expression "(int *)piVar3[0x14]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x14]" identifier [ number_literal ])))) ;)) (goto_statement "goto LAB_00062bf2;" goto statement_identifier ;) }))) }) (else_clause "else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }" else (compound_statement "{\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }" { (expression_statement "uVar9 = uVar9 & 0xfffe;" (assignment_expression "uVar9 = uVar9 & 0xfffe" identifier = (binary_expression "uVar9 & 0xfffe" identifier & number_literal)) ;) (expression_statement "*(ushort *)(piVar3 + 6) = uVar9;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;" statement_identifier : (if_statement "if (extraout_EDX == 0) goto LAB_00062be5;" if (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062be5;" goto statement_identifier ;))) (if_statement "if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;" if (parenthesized_expression "(((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0))" ( (binary_expression "((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)" (parenthesized_expression "((char)piVar3[5] == '\x02')" ( (binary_expression "(char)piVar3[5] == '\x02'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "((uVar9 & 0x80) != 0)" ( (binary_expression "(uVar9 & 0x80) != 0" (parenthesized_expression "(uVar9 & 0x80)" ( (binary_expression "uVar9 & 0x80" identifier & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00062bed;" goto statement_identifier ;)) (if_statement "if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;" if (parenthesized_expression "((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))" ( (binary_expression "(extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0)" (parenthesized_expression "(extraout_EDX < 2)" ( (binary_expression "extraout_EDX < 2" identifier < number_literal) )) || (parenthesized_expression "(puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0)" ( (comma_expression "puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0" (assignment_expression "puVar5 = (undefined4 *)piVar3[0x13]" identifier = (cast_expression "(undefined4 *)piVar3[0x13]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x13]" identifier [ number_literal ]))) , (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00062c81;" goto statement_identifier ;)) (expression_statement "piVar6 = (int *)*puVar5;" (assignment_expression "piVar6 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (while_statement "while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }" while (parenthesized_expression "(param_1 == piVar6)" ( (binary_expression "param_1 == piVar6" identifier == identifier) )) (compound_statement "{\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }" { (expression_statement "puVar5 = (undefined4 *)puVar5[3];" (assignment_expression "puVar5 = (undefined4 *)puVar5[3]" identifier = (cast_expression "(undefined4 *)puVar5[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062c81;" goto statement_identifier ;)) (expression_statement "piVar6 = (int *)*puVar5;" (assignment_expression "piVar6 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) })) (expression_statement "iVar11 = *piVar6;" (assignment_expression "iVar11 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (labeled_statement "LAB_00062bf2:\n      iVar15 = 0x106;" statement_identifier : (expression_statement "iVar15 = 0x106;" (assignment_expression "iVar15 = 0x106" identifier = number_literal) ;)) (if_statement "if (iVar11 != 0) goto LAB_00062c00;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00062c81:\n    iVar15 = FUN_0001f420();" statement_identifier : (expression_statement "iVar15 = FUN_0001f420();" (assignment_expression "iVar15 = FUN_0001f420()" identifier = (call_expression "FUN_0001f420()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar15 != 0) goto LAB_00062c00;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) (expression_statement "uVar9 = *(ushort *)(piVar3 + 6);" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6)" identifier = (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = (binary_expression "uVar9 & 0xffef" identifier & number_literal)) ;) (if_statement "if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }" if (parenthesized_expression "(piVar3[0xc] == 0)" ( (binary_expression "piVar3[0xc] == 0" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }" { (expression_statement "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = (binary_expression "uVar9 & 0xffef | 0x10" (binary_expression "uVar9 & 0xffef" identifier & number_literal) | number_literal)) ;) })) (expression_statement "iVar11 = piVar3[3];" (assignment_expression "iVar11 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;" statement_identifier : (if_statement "if (iVar11 == 0) goto LAB_00062d23;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062d23;" goto statement_identifier ;))) (labeled_statement "LAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }" statement_identifier : (if_statement "if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }" if (parenthesized_expression "((iVar15 != 0) || (extraout_EDX == 0))" ( (binary_expression "(iVar15 != 0) || (extraout_EDX == 0)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) || (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }" { (labeled_statement "LAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;" statement_identifier : (if_statement "if (iVar15 == 0) goto LAB_00062dd0;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062dd0;" goto statement_identifier ;))) (labeled_statement "LAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;" statement_identifier : (if_statement "if ((char)piVar3[5] != '\0') goto LAB_00062cf5;" if (parenthesized_expression "((char)piVar3[5] != '\0')" ( (binary_expression "(char)piVar3[5] != '\0'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00062cf5;" goto statement_identifier ;))) (labeled_statement "LAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');" statement_identifier : (do_statement "do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');" do (compound_statement "{\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      }" { (expression_statement "FUN_00061fb0();" (call_expression "FUN_00061fb0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;" statement_identifier : (if_statement "if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;" if (parenthesized_expression "((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0))" ( (binary_expression "(((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)" (parenthesized_expression "(((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0'))" ( (binary_expression "((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')" (parenthesized_expression "((char)iVar15 != '\x05')" ( (binary_expression "(char)iVar15 != '\x05'" (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) || (parenthesized_expression "((char)piVar3[5] != '\0')" ( (binary_expression "(char)piVar3[5] != '\0'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(iVar11 = FUN_0001f620(piVar3), iVar11 == 0)" ( (comma_expression "iVar11 = FUN_0001f620(piVar3), iVar11 == 0" (assignment_expression "iVar11 = FUN_0001f620(piVar3)" identifier = (call_expression "FUN_0001f620(piVar3)" identifier (argument_list "(piVar3)" ( identifier )))) , (binary_expression "iVar11 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;))) (labeled_statement "LAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;" statement_identifier : (if_statement "if (piVar3[3] != 0) goto LAB_00062cc3;" if (parenthesized_expression "(piVar3[3] != 0)" ( (binary_expression "piVar3[3] != 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00062cc3;" goto statement_identifier ;))) (labeled_statement "LAB_00062d23:\n        iVar15 = FUN_000622f0();" statement_identifier : (expression_statement "iVar15 = FUN_000622f0();" (assignment_expression "iVar15 = FUN_000622f0()" identifier = (call_expression "FUN_000622f0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;" if (parenthesized_expression "((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0))" ( (binary_expression "(iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar15 = FUN_0001f5a0(0), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0001f5a0(0), iVar15 != 0" (assignment_expression "iVar15 = FUN_0001f5a0(0)" identifier = (call_expression "FUN_0001f5a0(0)" identifier (argument_list "(0)" ( number_literal )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;)) (expression_statement "piVar6 = *(int **)(local_28 + 0x38);" (assignment_expression "piVar6 = *(int **)(local_28 + 0x38)" identifier = (pointer_expression "*(int **)(local_28 + 0x38)" * (cast_expression "(int **)(local_28 + 0x38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_28 + 0x38)" ( (binary_expression "local_28 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = piVar6[7];" (assignment_expression "uVar7 = piVar6[7]" identifier = (subscript_expression "piVar6[7]" identifier [ number_literal ])) ;) (expression_statement "local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" identifier = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar7 = *(uint *)(*piVar3 + 0x18);" (assignment_expression "uVar7 = *(uint *)(*piVar3 + 0x18)" identifier = (pointer_expression "*(uint *)(*piVar3 + 0x18)" * (cast_expression "(uint *)(*piVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + 0x18)" ( (binary_expression "*piVar3 + 0x18" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;" (assignment_expression "uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000" identifier = (binary_expression "*(uint *)(piVar3[1] + 0x1c) & 0x2000000" (pointer_expression "*(uint *)(piVar3[1] + 0x1c)" * (cast_expression "(uint *)(piVar3[1] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[1] + 0x1c)" ( (binary_expression "piVar3[1] + 0x1c" (subscript_expression "piVar3[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal)) ;) (if_statement "if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" if (parenthesized_expression "((local_44 == 0) || (piVar6[6] != piVar6[0x17]))" ( (binary_expression "(local_44 == 0) || (piVar6[6] != piVar6[0x17])" (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar6[6] != piVar6[0x17])" ( (binary_expression "piVar6[6] != piVar6[0x17]" (subscript_expression "piVar6[6]" identifier [ number_literal ]) != (subscript_expression "piVar6[0x17]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }" { (if_statement "if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;" if (parenthesized_expression "((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0))" ( (binary_expression "(uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)" (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_44 = uVar7, uVar7 == 0)" ( (comma_expression "local_44 = uVar7, uVar7 == 0" (assignment_expression "local_44 = uVar7" identifier = identifier) , (binary_expression "uVar7 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_000630a0;" goto statement_identifier ;)) }) (else_clause "else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" else (if_statement "if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" { (labeled_statement "LAB_000630a0:\n          local_44 = 0;" statement_identifier : (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_000630a8;" goto statement_identifier ;) })))) (if_statement "if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;" if (parenthesized_expression "((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074))" ( (binary_expression "(((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)" (parenthesized_expression "(((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f))" ( (binary_expression "((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)" (parenthesized_expression "((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574))" ( (binary_expression "(*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)" (parenthesized_expression "(*piVar6 != 0x694c5153)" ( (binary_expression "*piVar6 != 0x694c5153" (pointer_expression "*piVar6" * identifier) != number_literal) )) || (parenthesized_expression "(piVar6[1] != 0x66206574)" ( (binary_expression "piVar6[1] != 0x66206574" (subscript_expression "piVar6[1]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(piVar6[2] != 0x616d726f)" ( (binary_expression "piVar6[2] != 0x616d726f" (subscript_expression "piVar6[2]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(piVar6[3] != 0x332074)" ( (binary_expression "piVar6[3] != 0x332074" (subscript_expression "piVar6[3]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_00062f1c;" goto statement_identifier ;)) (if_statement "if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }" if (parenthesized_expression "(2 < *(byte *)((int)piVar6 + 0x12))" ( (binary_expression "2 < *(byte *)((int)piVar6 + 0x12)" number_literal < (pointer_expression "*(byte *)((int)piVar6 + 0x12)" * (cast_expression "(byte *)((int)piVar6 + 0x12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x12)" ( (binary_expression "(int)piVar6 + 0x12" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }" { (expression_statement "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;" (assignment_expression "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = (binary_expression "*(ushort *)(piVar3 + 6) | 1" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;" if (parenthesized_expression "(2 < *(byte *)((int)piVar6 + 0x13))" ( (binary_expression "2 < *(byte *)((int)piVar6 + 0x13)" number_literal < (pointer_expression "*(byte *)((int)piVar6 + 0x13)" * (cast_expression "(byte *)((int)piVar6 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x13)" ( (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00062f1c;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }" if (parenthesized_expression "((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0))" ( (binary_expression "(*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)" (parenthesized_expression "(*(byte *)((int)piVar6 + 0x13) == 2)" ( (binary_expression "*(byte *)((int)piVar6 + 0x13) == 2" (pointer_expression "*(byte *)((int)piVar6 + 0x13)" * (cast_expression "(byte *)((int)piVar6 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x13)" ( (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(piVar3 + 6) & 0x20) == 0)" ( (binary_expression "(*(byte *)(piVar3 + 6) & 0x20) == 0" (parenthesized_expression "(*(byte *)(piVar3 + 6) & 0x20)" ( (binary_expression "*(byte *)(piVar3 + 6) & 0x20" (pointer_expression "*(byte *)(piVar3 + 6)" * (cast_expression "(byte *)(piVar3 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }" { (expression_statement "iVar15 = FUN_0001799c();" (assignment_expression "iVar15 = FUN_0001799c()" identifier = (call_expression "FUN_0001799c()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = piVar3[3];" (assignment_expression "iVar11 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062cbf;" goto statement_identifier ;) })) (labeled_statement "LAB_0006325c:\n          FUN_00061f80();" statement_identifier : (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;)) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;" statement_identifier : (if_statement "if (iVar15 != 0) goto LAB_00062d35;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;))) (goto_statement "goto LAB_00062d1c;" goto statement_identifier ;) })) (if_statement "if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }" if (parenthesized_expression "(((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101))))" ( (binary_expression "((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))" (parenthesized_expression "((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))" ( (binary_expression "(*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' ')" (parenthesized_expression "(*(short *)((int)piVar6 + 0x15) != 0x2040)" ( (binary_expression "*(short *)((int)piVar6 + 0x15) != 0x2040" (pointer_expression "*(short *)((int)piVar6 + 0x15)" * (cast_expression "(short *)((int)piVar6 + 0x15)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x15)" ( (binary_expression "(int)piVar6 + 0x15" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)((int)piVar6 + 0x17) != ' ')" ( (binary_expression "*(char *)((int)piVar6 + 0x17) != ' '" (pointer_expression "*(char *)((int)piVar6 + 0x17)" * (cast_expression "(char *)((int)piVar6 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x17)" ( (binary_expression "(int)piVar6 + 0x17" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "' '" ' character ')) ))) )) || (parenthesized_expression "((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))" ( (parenthesized_expression "(uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101))" ( (comma_expression "uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)" (assignment_expression "uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10" identifier = (binary_expression "(uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10" (binary_expression "(uint)*(byte *)(piVar6 + 4) << 8" (binary_expression "(uint)*(byte *)(piVar6 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(piVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 4)" ( (binary_expression "piVar6 + 4" identifier + number_literal) )))) << number_literal) | (binary_expression "(uint)*(byte *)((int)piVar6 + 0x11) << 0x10" (binary_expression "(uint)*(byte *)((int)piVar6 + 0x11)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)piVar6 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x11)" ( (binary_expression "(int)piVar6 + 0x11" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal))) , (binary_expression "(uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)" (binary_expression "(uVar14 - 1 & uVar14) != 0" (parenthesized_expression "(uVar14 - 1 & uVar14)" ( (binary_expression "uVar14 - 1 & uVar14" (binary_expression "uVar14 - 1" identifier - number_literal) & identifier) )) != number_literal) || (parenthesized_expression "(0xfeff < uVar14 - 0x101)" ( (binary_expression "0xfeff < uVar14 - 0x101" number_literal < (binary_expression "uVar14 - 0x101" identifier - number_literal)) )))) )) ))) )) (compound_statement "{\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }" { (expression_statement "iVar15 = 0x1a;" (assignment_expression "iVar15 = 0x1a" identifier = number_literal) ;) (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00062ce2;" goto statement_identifier ;) })) (expression_statement "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;" (assignment_expression "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = (binary_expression "*(ushort *)(piVar3 + 6) | 2" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "uVar12 = uVar14 - *(byte *)(piVar6 + 5);" (assignment_expression "uVar12 = uVar14 - *(byte *)(piVar6 + 5)" identifier = (binary_expression "uVar14 - *(byte *)(piVar6 + 5)" identifier - (pointer_expression "*(byte *)(piVar6 + 5)" * (cast_expression "(byte *)(piVar6 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 5)" ( (binary_expression "piVar6 + 5" identifier + number_literal) )))))) ;) (if_statement "if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }" if (parenthesized_expression "(uVar14 != piVar3[9])" ( (binary_expression "uVar14 != piVar3[9]" identifier != (subscript_expression "piVar3[9]" identifier [ number_literal ])) )) (compound_statement "{\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }" { (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3[10] = uVar12;" (assignment_expression "piVar3[10] = uVar12" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[9] = uVar14;" (assignment_expression "piVar3[9] = uVar14" (subscript_expression "piVar3[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }" if (parenthesized_expression "(piVar3[0x15] != 0)" ( (binary_expression "piVar3[0x15] != 0" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }" { (expression_statement "piVar3[0x15] = piVar3[0x15] + -4;" (assignment_expression "piVar3[0x15] = piVar3[0x15] + -4" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) = (binary_expression "piVar3[0x15] + -4" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "FUN_00026f80();" (call_expression "FUN_00026f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3[0x15] = 0;" (assignment_expression "piVar3[0x15] = 0" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar15 = FUN_00041550();" (assignment_expression "iVar15 = FUN_00041550()" identifier = (call_expression "FUN_00041550()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00063279;" goto statement_identifier ;) })) (if_statement "if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }" if (parenthesized_expression "(((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44))" ( (binary_expression "((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)" (parenthesized_expression "((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1)" ( (binary_expression "(*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1" (parenthesized_expression "(*(uint *)(piVar3[1] + 0x1c) & 0x10000001)" ( (binary_expression "*(uint *)(piVar3[1] + 0x1c) & 0x10000001" (pointer_expression "*(uint *)(piVar3[1] + 0x1c)" * (cast_expression "(uint *)(piVar3[1] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[1] + 0x1c)" ( (binary_expression "piVar3[1] + 0x1c" (subscript_expression "piVar3[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar7 < local_44)" ( (binary_expression "uVar7 < local_44" identifier < identifier) ))) )) (compound_statement "{\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }" { (expression_statement "iVar15 = FUN_000383f0();" (assignment_expression "iVar15 = FUN_000383f0()" identifier = (call_expression "FUN_000383f0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0006325c;" goto statement_identifier ;) })) (if_statement "if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }" if (parenthesized_expression "(0x1df < uVar12)" ( (binary_expression "0x1df < uVar12" number_literal < identifier) )) (compound_statement "{\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }" { (expression_statement "piVar3[10] = uVar12;" (assignment_expression "piVar3[10] = uVar12" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;" (assignment_expression "*(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0" (pointer_expression "*(bool *)((int)piVar3 + 0x11)" * (cast_expression "(bool *)((int)piVar3 + 0x11)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x11)" ( (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar6[0xd] != 0" (subscript_expression "piVar6[0xd]" identifier [ number_literal ]) != number_literal)) ;) (expression_statement "*(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;" (assignment_expression "*(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0" (pointer_expression "*(bool *)((int)piVar3 + 0x12)" * (cast_expression "(bool *)((int)piVar3 + 0x12)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x12)" ( (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar6[0x10] != 0" (subscript_expression "piVar6[0x10]" identifier [ number_literal ]) != number_literal)) ;) (labeled_statement "LAB_000630a8:\n          piVar3[3] = local_28;" statement_identifier : (expression_statement "piVar3[3] = local_28;" (assignment_expression "piVar3[3] = local_28" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;" (assignment_expression "uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17" identifier = (binary_expression "(short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17" (cast_expression "(short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff)" ( (binary_expression "(uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff" (call_expression "(uint)((piVar3[10] + 0x3fffff4) * 0x40)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar3[10] + 0x3fffff4) * 0x40)" ( (binary_expression "(piVar3[10] + 0x3fffff4) * 0x40" (parenthesized_expression "(piVar3[10] + 0x3fffff4)" ( (binary_expression "piVar3[10] + 0x3fffff4" (subscript_expression "piVar3[10]" identifier [ number_literal ]) + number_literal) )) * number_literal) ))) / number_literal) ))) - number_literal)) ;) (expression_statement "*(ushort *)((int)piVar3 + 0x1a) = uVar13;" (assignment_expression "*(ushort *)((int)piVar3 + 0x1a) = uVar13" (pointer_expression "*(ushort *)((int)piVar3 + 0x1a)" * (cast_expression "(ushort *)((int)piVar3 + 0x1a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x1a)" ( (binary_expression "(int)piVar3 + 0x1a" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;" (assignment_expression "sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17" identifier = (binary_expression "(short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17" (cast_expression "(short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff)" ( (binary_expression "(uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff" (call_expression "(uint)((piVar3[10] + 0x7fffff4) * 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar3[10] + 0x7fffff4) * 0x20)" ( (binary_expression "(piVar3[10] + 0x7fffff4) * 0x20" (parenthesized_expression "(piVar3[10] + 0x7fffff4)" ( (binary_expression "piVar3[10] + 0x7fffff4" (subscript_expression "piVar3[10]" identifier [ number_literal ]) + number_literal) )) * number_literal) ))) / number_literal) ))) + number_literal)) ;) (expression_statement "*(short *)(piVar3 + 7) = sVar10;" (assignment_expression "*(short *)(piVar3 + 7) = sVar10" (pointer_expression "*(short *)(piVar3 + 7)" * (cast_expression "(short *)(piVar3 + 7)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 7)" ( (binary_expression "piVar3 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(short *)(piVar3 + 8) = sVar10;" (assignment_expression "*(short *)(piVar3 + 8) = sVar10" (pointer_expression "*(short *)(piVar3 + 8)" * (cast_expression "(short *)(piVar3 + 8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 8)" ( (binary_expression "piVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;" (assignment_expression "*(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23" (pointer_expression "*(short *)((int)piVar3 + 0x1e)" * (cast_expression "(short *)((int)piVar3 + 0x1e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x1e)" ( (binary_expression "(int)piVar3 + 0x1e" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(short)piVar3[10] + -0x23" (cast_expression "(short)piVar3[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar3[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "uVar9 = 0x7f;" (assignment_expression "uVar9 = 0x7f" identifier = number_literal) ;) (if_statement "if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }" if (parenthesized_expression "(uVar13 < 0x80)" ( (binary_expression "uVar13 < 0x80" identifier < number_literal) )) (compound_statement "{\n            uVar9 = uVar13;\n          }" { (expression_statement "uVar9 = uVar13;" (assignment_expression "uVar9 = uVar13" identifier = identifier) ;) })) (expression_statement "*(char *)((int)piVar3 + 0x15) = (char)uVar9;" (assignment_expression "*(char *)((int)piVar3 + 0x15) = (char)uVar9" (pointer_expression "*(char *)((int)piVar3 + 0x15)" * (cast_expression "(char *)((int)piVar3 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x15)" ( (binary_expression "(int)piVar3 + 0x15" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "piVar3[0xc] = local_44;" (assignment_expression "piVar3[0xc] = local_44" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = local_28;" (assignment_expression "iVar11 = local_28" identifier = identifier) ;) (goto_statement "goto LAB_00062cbf;" goto statement_identifier ;) })) (labeled_statement "LAB_00062f1c:\n        iVar15 = 0x1a;" statement_identifier : (expression_statement "iVar15 = 0x1a;" (assignment_expression "iVar15 = 0x1a" identifier = number_literal) ;)) (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00062ce2:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "((char)piVar3[5] == '\0')" ( (binary_expression "(char)piVar3[5] == '\0'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) ;)) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) }))) (if_statement "if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;" if (parenthesized_expression "((*(byte *)(piVar3 + 6) & 1) != 0)" ( (binary_expression "(*(byte *)(piVar3 + 6) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar3 + 6) & 1)" ( (binary_expression "*(byte *)(piVar3 + 6) & 1" (pointer_expression "*(byte *)(piVar3 + 6)" * (cast_expression "(byte *)(piVar3 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00062cdd;" goto statement_identifier ;)) (expression_statement "iVar15 = *(int *)(iVar4 + 0x28);" (assignment_expression "iVar15 = *(int *)(iVar4 + 0x28)" identifier = (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }" { (labeled_statement "LAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;" statement_identifier : (if_statement "if (iVar15 != 0x205) goto LAB_00062d35;" if (parenthesized_expression "(iVar15 != 0x205)" ( (binary_expression "iVar15 != 0x205" identifier != number_literal) )) (goto_statement "goto LAB_00062d35;" goto statement_identifier ;))) (labeled_statement "LAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }" statement_identifier : (if_statement "if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }" if (parenthesized_expression "((char)piVar3[5] == '\0')" ( (binary_expression "(char)piVar3[5] == '\0'" (cast_expression "(char)piVar3[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00062cec;" goto statement_identifier ;) }))) (expression_statement "iVar15 = 0x205;" (assignment_expression "iVar15 = 0x205" identifier = number_literal) ;) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) })) (expression_statement "*(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';" (assignment_expression "*(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02'" (pointer_expression "*(bool *)(iVar4 + 0x15)" * (cast_expression "(bool *)(iVar4 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x15)" ( (binary_expression "iVar4 + 0x15" identifier + number_literal) )))) = (binary_expression "*(char *)(*param_1 + 0x4c) == '\x02'" (pointer_expression "*(char *)(*param_1 + 0x4c)" * (cast_expression "(char *)(*param_1 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x4c)" ( (binary_expression "*param_1 + 0x4c" (pointer_expression "*param_1" * identifier) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence '))) ;) (if_statement "if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }" if (parenthesized_expression "(*(char *)(iVar4 + 0x10) == '\x01')" ( (binary_expression "*(char *)(iVar4 + 0x10) == '\x01'" (pointer_expression "*(char *)(iVar4 + 0x10)" * (cast_expression "(char *)(iVar4 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }" { (expression_statement "iVar11 = *(int *)(iVar4 + 0xd4);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0xd4)" identifier = (pointer_expression "*(int *)(iVar4 + 0xd4)" * (cast_expression "(int *)(iVar4 + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd4)" ( (binary_expression "iVar4 + 0xd4" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }" { (if_statement "if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }" if (parenthesized_expression "((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0'))" ( (binary_expression "(*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')" (parenthesized_expression "(*(char *)(iVar4 + 4) != '\0')" ( (binary_expression "*(char *)(iVar4 + 4) != '\0'" (pointer_expression "*(char *)(iVar4 + 4)" * (cast_expression "(char *)(iVar4 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" * (cast_expression "(char *)(iVar11 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }" { (if_statement "if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4))" ( (binary_expression "(*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)" (parenthesized_expression "(*(byte *)(iVar4 + 0x11) == 5)" ( (binary_expression "*(byte *)(iVar4 + 0x11) == 5" (pointer_expression "*(byte *)(iVar4 + 0x11)" * (cast_expression "(byte *)(iVar4 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11)" ( (binary_expression "iVar4 + 0x11" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(byte *)(iVar4 + 0x11) < 4)" ( (binary_expression "*(byte *)(iVar4 + 0x11) < 4" (pointer_expression "*(byte *)(iVar4 + 0x11)" * (cast_expression "(byte *)(iVar4 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11)" ( (binary_expression "iVar4 + 0x11" identifier + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }" { (expression_statement "iVar15 = FUN_00027390();" (assignment_expression "iVar15 = FUN_00027390()" identifier = (call_expression "FUN_00027390()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) goto LAB_00062e70;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062e70;" goto statement_identifier ;)) (expression_statement "iVar11 = *(int *)(iVar4 + 0xd4);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0xd4)" identifier = (pointer_expression "*(int *)(iVar4 + 0xd4)" * (cast_expression "(int *)(iVar4 + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd4)" ( (binary_expression "iVar4 + 0xd4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }" if (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" * (cast_expression "(char *)(iVar11 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }" { (expression_statement "(**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);" (call_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5)" (parenthesized_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))" ( (pointer_expression "**(code **)(**(int **)(iVar11 + 4) + 0x38)" * (pointer_expression "*(code **)(**(int **)(iVar11 + 4) + 0x38)" * (cast_expression "(code **)(**(int **)(iVar11 + 4) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar11 + 4) + 0x38)" ( (binary_expression "**(int **)(iVar11 + 4) + 0x38" (pointer_expression "**(int **)(iVar11 + 4)" * (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5)" ( (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) , (binary_expression "*(short *)(iVar11 + 0x28) + 3" (pointer_expression "*(short *)(iVar11 + 0x28)" * (cast_expression "(short *)(iVar11 + 0x28)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) + number_literal) , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)(iVar11 + 0x2b) = 1;" (assignment_expression "*(undefined1 *)(iVar11 + 0x2b) = 1" (pointer_expression "*(undefined1 *)(iVar11 + 0x2b)" * (cast_expression "(undefined1 *)(iVar11 + 0x2b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = *(int *)(iVar4 + 0xd4);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0xd4)" identifier = (pointer_expression "*(int *)(iVar4 + 0xd4)" * (cast_expression "(int *)(iVar4 + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xd4)" ( (binary_expression "iVar4 + 0xd4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }" if (parenthesized_expression "(*(char *)(iVar11 + 0x2e) != '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2e) != '\0'" (pointer_expression "*(char *)(iVar11 + 0x2e)" * (cast_expression "(char *)(iVar11 + 0x2e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2e)" ( (binary_expression "iVar11 + 0x2e" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }" { (labeled_statement "LAB_00062cdd:\n          iVar15 = 8;" statement_identifier : (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" identifier = number_literal) ;)) (goto_statement "goto LAB_00062ce2;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;" if (parenthesized_expression "((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0))" ( (binary_expression "(*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)" (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" * (cast_expression "(char *)(iVar11 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)" ( (comma_expression "iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0" (assignment_expression "iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10)" identifier = (call_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10)" (parenthesized_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))" ( (pointer_expression "**(code **)(**(int **)(iVar11 + 4) + 0x38)" * (pointer_expression "*(code **)(**(int **)(iVar11 + 4) + 0x38)" * (cast_expression "(code **)(**(int **)(iVar11 + 4) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar11 + 4) + 0x38)" ( (binary_expression "**(int **)(iVar11 + 4) + 0x38" (pointer_expression "**(int **)(iVar11 + 4)" * (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar11 + 4),0,1,10)" ( (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00062e70;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(iVar11 + 0x2c) = 1;" (assignment_expression "*(undefined1 *)(iVar11 + 0x2c) = 1" (pointer_expression "*(undefined1 *)(iVar11 + 0x2c)" * (cast_expression "(undefined1 *)(iVar11 + 0x2c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2c)" ( (binary_expression "iVar11 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);" (assignment_expression "iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30)" identifier = (call_expression "memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30)" identifier (argument_list "((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30)" ( (cast_expression "(void *)(iVar11 + 0x34)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x34)" ( (binary_expression "iVar11 + 0x34" identifier + number_literal) ))) , (cast_expression "(void *)**(undefined4 **)(iVar11 + 0x20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar11 + 0x20)" * (pointer_expression "*(undefined4 **)(iVar11 + 0x20)" * (cast_expression "(undefined4 **)(iVar11 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) )))))) , number_literal )))) ;) (if_statement "if (iVar15 == 0) goto LAB_00063076;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00063076;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }" if (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" ( (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" * (cast_expression "(char *)(iVar11 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }" { (expression_statement "(**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);" (call_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9)" (parenthesized_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))" ( (pointer_expression "**(code **)(**(int **)(iVar11 + 4) + 0x38)" * (pointer_expression "*(code **)(**(int **)(iVar11 + 4) + 0x38)" * (cast_expression "(code **)(**(int **)(iVar11 + 4) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar11 + 4) + 0x38)" ( (binary_expression "**(int **)(iVar11 + 4) + 0x38" (pointer_expression "**(int **)(iVar11 + 4)" * (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar11 + 4),0,1,9)" ( (pointer_expression "*(int **)(iVar11 + 4)" * (cast_expression "(int **)(iVar11 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)(iVar11 + 0x2c) = 0;" (assignment_expression "*(undefined1 *)(iVar11 + 0x2c) = 0" (pointer_expression "*(undefined1 *)(iVar11 + 0x2c)" * (cast_expression "(undefined1 *)(iVar11 + 0x2c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2c)" ( (binary_expression "iVar11 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00062e7c;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5))" ( (binary_expression "(*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)" (parenthesized_expression "(*(byte *)(iVar4 + 0x11) < 2)" ( (binary_expression "*(byte *)(iVar4 + 0x11) < 2" (pointer_expression "*(byte *)(iVar4 + 0x11)" * (cast_expression "(byte *)(iVar4 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11)" ( (binary_expression "iVar4 + 0x11" identifier + number_literal) )))) < number_literal) )) || (parenthesized_expression "(*(byte *)(iVar4 + 0x11) == 5)" ( (binary_expression "*(byte *)(iVar4 + 0x11) == 5" (pointer_expression "*(byte *)(iVar4 + 0x11)" * (cast_expression "(byte *)(iVar4 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11)" ( (binary_expression "iVar4 + 0x11" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }" { (expression_statement "iVar15 = FUN_00027390();" (assignment_expression "iVar15 = FUN_00027390()" identifier = (call_expression "FUN_00027390()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;" if (parenthesized_expression "((1 < extraout_EDX) && (iVar15 == 0))" ( (binary_expression "(1 < extraout_EDX) && (iVar15 == 0)" (parenthesized_expression "(1 < extraout_EDX)" ( (binary_expression "1 < extraout_EDX" number_literal < identifier) )) && (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00062e57;" goto statement_identifier ;)) (labeled_statement "LAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;" statement_identifier : (if_statement "if (iVar15 != 0) goto LAB_00062e70;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062e70;" goto statement_identifier ;))) }) (else_clause "else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" else (if_statement "if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" if (parenthesized_expression "(1 < extraout_EDX)" ( (binary_expression "1 < extraout_EDX" number_literal < identifier) )) (compound_statement "{\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" { (labeled_statement "LAB_00062e57:\n        iVar15 = FUN_000273d0();" statement_identifier : (expression_statement "iVar15 = FUN_000273d0();" (assignment_expression "iVar15 = FUN_000273d0()" identifier = (call_expression "FUN_000273d0()" identifier (argument_list "()" ( )))) ;)) (goto_statement "goto LAB_00062e67;" goto statement_identifier ;) })))) (labeled_statement "LAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);" statement_identifier : (expression_statement "uVar8 = *(undefined4 *)(iVar4 + 0x18);" (assignment_expression "uVar8 = *(undefined4 *)(iVar4 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined1 *)(iVar4 + 0x10) = 2;" (assignment_expression "*(undefined1 *)(iVar4 + 0x10) = 2" (pointer_expression "*(undefined1 *)(iVar4 + 0x10)" * (cast_expression "(undefined1 *)(iVar4 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x48) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x48) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x48)" * (cast_expression "(undefined4 *)(iVar4 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x4c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x4c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x4c)" * (cast_expression "(undefined4 *)(iVar4 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x24) = uVar8;" (assignment_expression "*(undefined4 *)(iVar4 + 0x24) = uVar8" (pointer_expression "*(undefined4 *)(iVar4 + 0x24)" * (cast_expression "(undefined4 *)(iVar4 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x20) = uVar8;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = uVar8" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar4 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }" if (parenthesized_expression "(piVar3[0xc] == 0)" ( (binary_expression "piVar3[0xc] == 0" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }" { (expression_statement "iVar15 = FUN_00062aa0();" (assignment_expression "iVar15 = FUN_00062aa0()" identifier = (call_expression "FUN_00062aa0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00062dc8;" goto statement_identifier ;) })) (labeled_statement "LAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }" statement_identifier : (if_statement "if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }" if (parenthesized_expression "(((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0'))" ( (binary_expression "((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')" (parenthesized_expression "((char)param_1[2] == '\0')" ( (binary_expression "(char)param_1[2] == '\0'" (cast_expression "(char)param_1[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')" ( (comma_expression "piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0'" (assignment_expression "piVar3[0xb] = piVar3[0xb] + 1" (subscript_expression "piVar3[0xb]" identifier [ number_literal ]) = (binary_expression "piVar3[0xb] + 1" (subscript_expression "piVar3[0xb]" identifier [ number_literal ]) + number_literal)) , (binary_expression "*(char *)((int)param_1 + 9) != '\0'" (pointer_expression "*(char *)((int)param_1 + 9)" * (cast_expression "(char *)((int)param_1 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 9)" ( (binary_expression "(int)param_1 + 9" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }" { (expression_statement "*(undefined1 *)(param_1 + 10) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 10) = 1" (pointer_expression "*(undefined1 *)(param_1 + 10)" * (cast_expression "(undefined1 *)(param_1 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xb] = piVar3[0x13];" (assignment_expression "param_1[0xb] = piVar3[0x13]" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x13]" identifier [ number_literal ])) ;) (expression_statement "piVar3[0x13] = (int)(param_1 + 8);" (assignment_expression "piVar3[0x13] = (int)(param_1 + 8)" (subscript_expression "piVar3[0x13]" identifier [ number_literal ]) = (cast_expression "(int)(param_1 + 8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ;) }))) (expression_statement "bVar2 = *(byte *)(piVar3 + 5);" (assignment_expression "bVar2 = *(byte *)(piVar3 + 5)" identifier = (pointer_expression "*(byte *)(piVar3 + 5)" * (cast_expression "(byte *)(piVar3 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 5)" ( (binary_expression "piVar3 + 5" identifier + number_literal) ))))) ;) (if_statement "if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }" if (parenthesized_expression "(extraout_EDX == 0)" ( (binary_expression "extraout_EDX == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 2) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 2) = 1" (pointer_expression "*(undefined1 *)(param_1 + 2)" * (cast_expression "(undefined1 *)(param_1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }" { (expression_statement "*(undefined1 *)(piVar3 + 5) = 1;" (assignment_expression "*(undefined1 *)(piVar3 + 5) = 1" (pointer_expression "*(undefined1 *)(piVar3 + 5)" * (cast_expression "(undefined1 *)(piVar3 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 5)" ( (binary_expression "piVar3 + 5" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_00062e08;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(param_1 + 2) = 2;" (assignment_expression "*(undefined1 *)(param_1 + 2) = 2" (pointer_expression "*(undefined1 *)(param_1 + 2)" * (cast_expression "(undefined1 *)(param_1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }" if (parenthesized_expression "(bVar2 < 2)" ( (binary_expression "bVar2 < 2" identifier < number_literal) )) (compound_statement "{\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }" { (expression_statement "*(undefined1 *)(piVar3 + 5) = 2;" (assignment_expression "*(undefined1 *)(piVar3 + 5) = 2" (pointer_expression "*(undefined1 *)(piVar3 + 5)" * (cast_expression "(undefined1 *)(piVar3 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 5)" ( (binary_expression "piVar3 + 5" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "iVar11 = piVar3[3];" (assignment_expression "iVar11 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "piVar3[0x14] = (int)param_1;" (assignment_expression "piVar3[0x14] = (int)param_1" (subscript_expression "piVar3[0x14]" identifier [ number_literal ]) = (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf" identifier = (binary_expression "*(ushort *)(piVar3 + 6) & 0xffbf" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }" if (parenthesized_expression "(1 < extraout_EDX)" ( (binary_expression "1 < extraout_EDX" number_literal < identifier) )) (compound_statement "{\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }" { (expression_statement "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40" identifier = (binary_expression "*(ushort *)(piVar3 + 6) & 0xffbf | 0x40" (binary_expression "*(ushort *)(piVar3 + 6) & 0xffbf" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "*(ushort *)(piVar3 + 6) = uVar9;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9" (pointer_expression "*(ushort *)(piVar3 + 6)" * (cast_expression "(ushort *)(piVar3 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);" (assignment_expression "uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" * (cast_expression "(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(iVar11 + 0x38) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x38)" * (cast_expression "(int *)(iVar11 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x38)" ( (binary_expression "iVar11 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;" if (parenthesized_expression "(piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))" ( (binary_expression "piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18)" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) == (parenthesized_expression "(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18)" ( (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal)) ))) )) (goto_statement "goto LAB_00062d40;" goto statement_identifier ;)) (expression_statement "iVar15 = FUN_0005f680();" (assignment_expression "iVar15 = FUN_0005f680()" identifier = (call_expression "FUN_0005f680()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) goto LAB_00062c00;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;)) (expression_statement "uVar7 = piVar3[0xc];" (assignment_expression "uVar7 = piVar3[0xc]" identifier = (subscript_expression "piVar3[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" * (cast_expression "(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(iVar11 + 0x38) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x38)" * (cast_expression "(int *)(iVar11 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x38)" ( (binary_expression "iVar11 + 0x38" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) (if_statement "if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;" if (parenthesized_expression "(extraout_ECX != (uint *)0x0)" ( (binary_expression "extraout_ECX != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00062d48;" goto statement_identifier ;)) (labeled_statement "LAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }" statement_identifier : (if_statement "if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }" if (parenthesized_expression "((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0'))" ( (binary_expression "(*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')" (parenthesized_expression "(*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4))" ( (binary_expression "*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) < (pointer_expression "*(int *)(*param_1 + 0x1d4)" * (cast_expression "(int *)(*param_1 + 0x1d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x1d4)" ( (binary_expression "*param_1 + 0x1d4" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) && (parenthesized_expression "(*(char *)(iVar4 + 6) != '\0')" ( (binary_expression "*(char *)(iVar4 + 6) != '\0'" (pointer_expression "*(char *)(iVar4 + 6)" * (cast_expression "(char *)(iVar4 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 6)" ( (binary_expression "iVar4 + 6" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }" { (expression_statement "iVar15 = FUN_0002d050();" (assignment_expression "iVar15 = FUN_0002d050()" identifier = (call_expression "FUN_0002d050()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00062c00;" goto statement_identifier ;) }))) }))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }" statement_identifier : (if_statement "if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }" if (parenthesized_expression "(*(char *)((int)param_1 + 9) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 9) != '\0'" (pointer_expression "*(char *)((int)param_1 + 9)" * (cast_expression "(char *)((int)param_1 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 9)" ( (binary_expression "(int)param_1 + 9" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }" { (expression_statement "param_1 = param_1 + 3;" (assignment_expression "param_1 = param_1 + 3" identifier = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "*param_1 = *param_1 + -1;" (assignment_expression "*param_1 = *param_1 + -1" (pointer_expression "*param_1" * identifier) = (binary_expression "*param_1 + -1" (pointer_expression "*param_1" * identifier) + number_literal)) ;) (if_statement "if (*param_1 == 0) {\n      FUN_000278b0();\n    }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n      FUN_000278b0();\n    }" { (expression_statement "FUN_000278b0();" (call_expression "FUN_000278b0()" identifier (argument_list "()" ( ))) ;) })) }))) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(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                    \n    FUN_000a9ea0();\n  }" { (expression_statement "FUN_000a9ea0();" (call_expression "FUN_000a9ea0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar15;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) 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 ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_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 IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) )) == LIT) )) || (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (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 IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;)) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (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 IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (goto_statement goto 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == 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 = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) | (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) << LIT))) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & IDENT) )) != LIT) || (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto 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)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )) * LIT) ))) / LIT) ))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )) * LIT) ))) / LIT) ))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) ;)) (goto_statement goto 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) )) (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 != LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto 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 (pointer_expression * IDENT) + LIT) )))) == (char_literal ' escape_sequence '))) ;) (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 = (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 { (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) )))) != (char_literal ' escape_sequence ')) )) && (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 { (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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 (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , 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 = (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto 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) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (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 ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto 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) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (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 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 (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (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 IDENT == LIT) )) (compound_statement { (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 == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (goto_statement goto 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 < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 { (expression_statement (assignment_expression IDENT = (binary_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 * (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) )))) = (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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (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) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) && (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 ( )))) ;) (goto_statement goto statement_identifier ;) }))) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( ))) ;) })) }))) (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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_00062b70(int *param_1)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  ushort uVar9;\n  short sVar10;\n  int iVar11;\n  uint uVar12;\n  uint *extraout_ECX;\n  ushort uVar13;\n  int extraout_EDX;\n  uint uVar14;\n  int iVar15;\n  int in_GS_OFFSET;\n  uint local_44;\n  int local_28;\n  \n  FUN_000a94ff();\n  piVar3 = (int *)param_1[1];\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = *piVar3;\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }\n  if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }\n  iVar15 = 0;\nLAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar15;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00062b70(int *param_1)" (identifier "FUN_00062b70") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  ushort uVar9;\n  short sVar10;\n  int iVar11;\n  uint uVar12;\n  uint *extraout_ECX;\n  ushort uVar13;\n  int extraout_EDX;\n  uint uVar14;\n  int iVar15;\n  int in_GS_OFFSET;\n  uint local_44;\n  int local_28;\n  \n  FUN_000a94ff();\n  piVar3 = (int *)param_1[1];\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = *piVar3;\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }\n  if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }\n  iVar15 = 0;\nLAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar15;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "ushort uVar9;" (type_identifier "ushort") (identifier "uVar9") (; ";")) (declaration "short sVar10;" (sized_type_specifier "short" (short "short")) (identifier "sVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint *extraout_ECX;" (type_identifier "uint") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "ushort uVar13;" (type_identifier "ushort") (identifier "uVar13") (; ";")) (declaration "int extraout_EDX;" (primitive_type "int") (identifier "extraout_EDX") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (expression_statement "FUN_000a94ff();" (call_expression "FUN_000a94ff()" (identifier "FUN_000a94ff") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar3 = (int *)param_1[1];" (assignment_expression "piVar3 = (int *)param_1[1]" (identifier "piVar3") (= "=") (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (= "=") (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 "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" (identifier "iVar4") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (if_statement "if (*(char *)((int)param_1 + 9) != '\0') {\n    FUN_00027820();\n  }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 9) != '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 9) != '\0'" (pointer_expression "*(char *)((int)param_1 + 9)" (* "*") (cast_expression "(char *)((int)param_1 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 9)" (( "(") (binary_expression "(int)param_1 + 9" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_00027820();\n  }" ({ "{") (expression_statement "FUN_00027820();" (call_expression "FUN_00027820()" (identifier "FUN_00027820") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((char)param_1[2] == '\x02') {\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }\n  else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }" (if "if") (parenthesized_expression "((char)param_1[2] == '\x02')" (( "(") (binary_expression "(char)param_1[2] == '\x02'" (cast_expression "(char)param_1[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\nLAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }\n    if (extraout_EDX != 0) goto LAB_00062d5d;\n  }" ({ "{") (labeled_statement "LAB_00062d40:\n    if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }" (statement_identifier "LAB_00062d40") (: ":") (if_statement "if (extraout_ECX != (uint *)0x0) {\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }" (if "if") (parenthesized_expression "(extraout_ECX != (uint *)0x0)" (( "(") (binary_expression "extraout_ECX != (uint *)0x0" (identifier "extraout_ECX") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);\n      *extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    }" ({ "{") (labeled_statement "LAB_00062d48:\n      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);" (statement_identifier "LAB_00062d48") (: ":") (expression_statement "uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);" (assignment_expression "uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28)" (* "*") (cast_expression "(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(piVar3[3] + 0x38) + 0x28)" (( "(") (binary_expression "*(int *)(piVar3[3] + 0x38) + 0x28" (pointer_expression "*(int *)(piVar3[3] + 0x38)" (* "*") (cast_expression "(int *)(piVar3[3] + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[3] + 0x38)" (( "(") (binary_expression "piVar3[3] + 0x38" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) (; ";"))) (expression_statement "*extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "*extraout_ECX =\n           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (pointer_expression "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (= "=") (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" (identifier "uVar7") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" (( "(") (binary_expression "uVar7 & 0xff0000" (identifier "uVar7") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" (( "(") (binary_expression "uVar7 & 0xff00" (identifier "uVar7") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar7 << 0x18" (identifier "uVar7") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}")))) (if_statement "if (extraout_EDX != 0) goto LAB_00062d5d;" (if "if") (parenthesized_expression "(extraout_EDX != 0)" (( "(") (binary_expression "extraout_EDX != 0" (identifier "extraout_EDX") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062d5d;" (goto "goto") (statement_identifier "LAB_00062d5d") (; ";"))) (} "}")) (else_clause "else {\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }" (else "else") (compound_statement "{\n    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }\n    uVar9 = *(ushort *)(piVar3 + 6);\n    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }\nLAB_00062c81:\n    iVar15 = FUN_0001f420();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar9 = *(ushort *)(piVar3 + 6);\n    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;\n    if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }\n    iVar11 = piVar3[3];\nLAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;\nLAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }\n    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;\n    iVar15 = *(int *)(iVar4 + 0x28);\n    if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }\n    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';\n    if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }\n    if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }\nLAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }\n    bVar2 = *(byte *)(piVar3 + 5);\n    if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }\n    *(undefined1 *)(param_1 + 2) = 2;\n    if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }\n    iVar11 = piVar3[3];\n    piVar3[0x14] = (int)param_1;\n    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;\n    if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }\n    *(ushort *)(piVar3 + 6) = uVar9;\n    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);\n    if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;\n    iVar15 = FUN_0005f680();\n    if (iVar15 != 0) goto LAB_00062c00;\n    uVar7 = piVar3[0xc];\n    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;\nLAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }\n  }" ({ "{") (if_statement "if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }" (if "if") (parenthesized_expression "(((char)param_1[2] == '\x01') && (extraout_EDX == 0))" (( "(") (binary_expression "((char)param_1[2] == '\x01') && (extraout_EDX == 0)" (parenthesized_expression "((char)param_1[2] == '\x01')" (( "(") (binary_expression "(char)param_1[2] == '\x01'" (cast_expression "(char)param_1[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(extraout_EDX == 0)" (( "(") (binary_expression "extraout_EDX == 0" (identifier "extraout_EDX") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }\n      goto LAB_00062d48;\n    }" ({ "{") (labeled_statement "LAB_00062e08:\n      if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }" (statement_identifier "LAB_00062e08") (: ":") (if_statement "if (extraout_ECX == (uint *)0x0) {\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }" (if "if") (parenthesized_expression "(extraout_ECX == (uint *)0x0)" (( "(") (binary_expression "extraout_ECX == (uint *)0x0" (identifier "extraout_ECX") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar15 = 0;\n        goto LAB_00062c00;\n      }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00062c00;" (goto "goto") (statement_identifier "LAB_00062c00") (; ";")) (} "}")))) (goto_statement "goto LAB_00062d48;" (goto "goto") (statement_identifier "LAB_00062d48") (; ";")) (} "}"))) (expression_statement "uVar9 = *(ushort *)(piVar3 + 6);" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6)" (identifier "uVar9") (= "=") (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (if_statement "if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }\n    else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }" (if "if") (parenthesized_expression "(((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0'))" (( "(") (binary_expression "((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')" (parenthesized_expression "((*(byte *)(*param_1 + 0x1f) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(*param_1 + 0x1f) & 2) == 0" (parenthesized_expression "(*(byte *)(*param_1 + 0x1f) & 2)" (( "(") (binary_expression "*(byte *)(*param_1 + 0x1f) & 2" (pointer_expression "*(byte *)(*param_1 + 0x1f)" (* "*") (cast_expression "(byte *)(*param_1 + 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x1f)" (( "(") (binary_expression "*param_1 + 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x1f")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar4 + 0xe) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0xe) != '\0'" (pointer_expression "*(char *)(iVar4 + 0xe)" (* "*") (cast_expression "(char *)(iVar4 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xe)" (( "(") (binary_expression "iVar4 + 0xe" (identifier "iVar4") (+ "+") (number_literal "0xe")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      if ((uVar9 & 1) == 0) goto LAB_00062c49;\n      iVar15 = 8;\n      if (extraout_EDX != 0) goto LAB_00062c00;\nLAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }\n    }" ({ "{") (if_statement "if ((uVar9 & 1) == 0) goto LAB_00062c49;" (if "if") (parenthesized_expression "((uVar9 & 1) == 0)" (( "(") (binary_expression "(uVar9 & 1) == 0" (parenthesized_expression "(uVar9 & 1)" (( "(") (binary_expression "uVar9 & 1" (identifier "uVar9") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062c49;" (goto "goto") (statement_identifier "LAB_00062c49") (; ";"))) (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" (identifier "iVar15") (= "=") (number_literal "8")) (; ";")) (if_statement "if (extraout_EDX != 0) goto LAB_00062c00;" (if "if") (parenthesized_expression "(extraout_EDX != 0)" (( "(") (binary_expression "extraout_EDX != 0" (identifier "extraout_EDX") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062c00;" (goto "goto") (statement_identifier "LAB_00062c00") (; ";"))) (labeled_statement "LAB_00062be5:\n      if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }" (statement_identifier "LAB_00062be5") (: ":") (if_statement "if ((uVar9 & 0x80) != 0) {\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }" (if "if") (parenthesized_expression "((uVar9 & 0x80) != 0)" (( "(") (binary_expression "(uVar9 & 0x80) != 0" (parenthesized_expression "(uVar9 & 0x80)" (( "(") (binary_expression "uVar9 & 0x80" (identifier "uVar9") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];\n        goto LAB_00062bf2;\n      }" ({ "{") (labeled_statement "LAB_00062bed:\n        iVar11 = *(int *)piVar3[0x14];" (statement_identifier "LAB_00062bed") (: ":") (expression_statement "iVar11 = *(int *)piVar3[0x14];" (assignment_expression "iVar11 = *(int *)piVar3[0x14]" (identifier "iVar11") (= "=") (pointer_expression "*(int *)piVar3[0x14]" (* "*") (cast_expression "(int *)piVar3[0x14]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x14]" (identifier "piVar3") ([ "[") (number_literal "0x14") (] "]"))))) (; ";"))) (goto_statement "goto LAB_00062bf2;" (goto "goto") (statement_identifier "LAB_00062bf2") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }" (else "else") (compound_statement "{\n      uVar9 = uVar9 & 0xfffe;\n      *(ushort *)(piVar3 + 6) = uVar9;\nLAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;\n      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;\n      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;\n      piVar6 = (int *)*puVar5;\n      while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }\n      iVar11 = *piVar6;\nLAB_00062bf2:\n      iVar15 = 0x106;\n      if (iVar11 != 0) goto LAB_00062c00;\n    }" ({ "{") (expression_statement "uVar9 = uVar9 & 0xfffe;" (assignment_expression "uVar9 = uVar9 & 0xfffe" (identifier "uVar9") (= "=") (binary_expression "uVar9 & 0xfffe" (identifier "uVar9") (& "&") (number_literal "0xfffe"))) (; ";")) (expression_statement "*(ushort *)(piVar3 + 6) = uVar9;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (labeled_statement "LAB_00062c49:\n      if (extraout_EDX == 0) goto LAB_00062be5;" (statement_identifier "LAB_00062c49") (: ":") (if_statement "if (extraout_EDX == 0) goto LAB_00062be5;" (if "if") (parenthesized_expression "(extraout_EDX == 0)" (( "(") (binary_expression "extraout_EDX == 0" (identifier "extraout_EDX") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062be5;" (goto "goto") (statement_identifier "LAB_00062be5") (; ";")))) (if_statement "if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;" (if "if") (parenthesized_expression "(((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0))" (( "(") (binary_expression "((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)" (parenthesized_expression "((char)piVar3[5] == '\x02')" (( "(") (binary_expression "(char)piVar3[5] == '\x02'" (cast_expression "(char)piVar3[5]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((uVar9 & 0x80) != 0)" (( "(") (binary_expression "(uVar9 & 0x80) != 0" (parenthesized_expression "(uVar9 & 0x80)" (( "(") (binary_expression "uVar9 & 0x80" (identifier "uVar9") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00062bed;" (goto "goto") (statement_identifier "LAB_00062bed") (; ";"))) (if_statement "if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))\n      goto LAB_00062c81;" (if "if") (parenthesized_expression "((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))" (( "(") (binary_expression "(extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0)" (parenthesized_expression "(extraout_EDX < 2)" (( "(") (binary_expression "extraout_EDX < 2" (identifier "extraout_EDX") (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0)" (( "(") (comma_expression "puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0" (assignment_expression "puVar5 = (undefined4 *)piVar3[0x13]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)piVar3[0x13]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x13]" (identifier "piVar3") ([ "[") (number_literal "0x13") (] "]")))) (, ",") (binary_expression "puVar5 == (undefined4 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00062c81;" (goto "goto") (statement_identifier "LAB_00062c81") (; ";"))) (expression_statement "piVar6 = (int *)*puVar5;" (assignment_expression "piVar6 = (int *)*puVar5" (identifier "piVar6") (= "=") (cast_expression "(int *)*puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (while_statement "while (param_1 == piVar6) {\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }" (while "while") (parenthesized_expression "(param_1 == piVar6)" (( "(") (binary_expression "param_1 == piVar6" (identifier "param_1") (== "==") (identifier "piVar6")) () ")")) (compound_statement "{\n        puVar5 = (undefined4 *)puVar5[3];\n        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;\n        piVar6 = (int *)*puVar5;\n      }" ({ "{") (expression_statement "puVar5 = (undefined4 *)puVar5[3];" (assignment_expression "puVar5 = (undefined4 *)puVar5[3]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)puVar5[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;" (if "if") (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined4 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00062c81;" (goto "goto") (statement_identifier "LAB_00062c81") (; ";"))) (expression_statement "piVar6 = (int *)*puVar5;" (assignment_expression "piVar6 = (int *)*puVar5" (identifier "piVar6") (= "=") (cast_expression "(int *)*puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (} "}"))) (expression_statement "iVar11 = *piVar6;" (assignment_expression "iVar11 = *piVar6" (identifier "iVar11") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (labeled_statement "LAB_00062bf2:\n      iVar15 = 0x106;" (statement_identifier "LAB_00062bf2") (: ":") (expression_statement "iVar15 = 0x106;" (assignment_expression "iVar15 = 0x106" (identifier "iVar15") (= "=") (number_literal "0x106")) (; ";"))) (if_statement "if (iVar11 != 0) goto LAB_00062c00;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062c00;" (goto "goto") (statement_identifier "LAB_00062c00") (; ";"))) (} "}")))) (labeled_statement "LAB_00062c81:\n    iVar15 = FUN_0001f420();" (statement_identifier "LAB_00062c81") (: ":") (expression_statement "iVar15 = FUN_0001f420();" (assignment_expression "iVar15 = FUN_0001f420()" (identifier "iVar15") (= "=") (call_expression "FUN_0001f420()" (identifier "FUN_0001f420") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar15 != 0) goto LAB_00062c00;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062c00;" (goto "goto") (statement_identifier "LAB_00062c00") (; ";"))) (expression_statement "uVar9 = *(ushort *)(piVar3 + 6);" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6)" (identifier "uVar9") (= "=") (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "uVar9 & 0xffef" (identifier "uVar9") (& "&") (number_literal "0xffef"))) (; ";")) (if_statement "if (piVar3[0xc] == 0) {\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }" (if "if") (parenthesized_expression "(piVar3[0xc] == 0)" (( "(") (binary_expression "piVar3[0xc] == 0" (subscript_expression "piVar3[0xc]" (identifier "piVar3") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;\n    }" ({ "{") (expression_statement "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "uVar9 & 0xffef | 0x10" (binary_expression "uVar9 & 0xffef" (identifier "uVar9") (& "&") (number_literal "0xffef")) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "iVar11 = piVar3[3];" (assignment_expression "iVar11 = piVar3[3]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (labeled_statement "LAB_00062cbf:\n    if (iVar11 == 0) goto LAB_00062d23;" (statement_identifier "LAB_00062cbf") (: ":") (if_statement "if (iVar11 == 0) goto LAB_00062d23;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062d23;" (goto "goto") (statement_identifier "LAB_00062d23") (; ";")))) (labeled_statement "LAB_00062cc3:\n    if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }" (statement_identifier "LAB_00062cc3") (: ":") (if_statement "if ((iVar15 != 0) || (extraout_EDX == 0)) {\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }" (if "if") (parenthesized_expression "((iVar15 != 0) || (extraout_EDX == 0))" (( "(") (binary_expression "(iVar15 != 0) || (extraout_EDX == 0)" (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(extraout_EDX == 0)" (( "(") (binary_expression "extraout_EDX == 0" (identifier "extraout_EDX") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;\nLAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;\nLAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');\n      goto LAB_00062c00;\n    }" ({ "{") (labeled_statement "LAB_00062dc8:\n      if (iVar15 == 0) goto LAB_00062dd0;" (statement_identifier "LAB_00062dc8") (: ":") (if_statement "if (iVar15 == 0) goto LAB_00062dd0;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062dd0;" (goto "goto") (statement_identifier "LAB_00062dd0") (; ";")))) (labeled_statement "LAB_00062d35:\n      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;" (statement_identifier "LAB_00062d35") (: ":") (if_statement "if ((char)piVar3[5] != '\0') goto LAB_00062cf5;" (if "if") (parenthesized_expression "((char)piVar3[5] != '\0')" (( "(") (binary_expression "(char)piVar3[5] != '\0'" (cast_expression "(char)piVar3[5]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00062cf5;" (goto "goto") (statement_identifier "LAB_00062cf5") (; ";")))) (labeled_statement "LAB_00062cec:\n      do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');" (statement_identifier "LAB_00062cec") (: ":") (do_statement "do {\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      } while ((char)piVar3[5] == '\0');" (do "do") (compound_statement "{\n        FUN_00061fb0();\nLAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;\nLAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;\nLAB_00062d23:\n        iVar15 = FUN_000622f0();\n        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;\n        piVar6 = *(int **)(local_28 + 0x38);\n        uVar7 = piVar6[7];\n        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n        uVar7 = *(uint *)(*piVar3 + 0x18);\n        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;\n        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }\n        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;\n        if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }\n        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;\n        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }\n        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }\n        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;\n        uVar12 = uVar14 - *(byte *)(piVar6 + 5);\n        if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }\n        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }\n        if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }\nLAB_00062f1c:\n        iVar15 = 0x1a;\n        FUN_00061f80();\n        piVar3[3] = 0;\nLAB_00062ce2:\n      }" ({ "{") (expression_statement "FUN_00061fb0();" (call_expression "FUN_00061fb0()" (identifier "FUN_00061fb0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00062cf5:\n        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;" (statement_identifier "LAB_00062cf5") (: ":") (if_statement "if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;" (if "if") (parenthesized_expression "((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0))" (( "(") (binary_expression "(((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||\n           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)" (parenthesized_expression "(((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0'))" (( "(") (binary_expression "((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')" (parenthesized_expression "((char)iVar15 != '\x05')" (( "(") (binary_expression "(char)iVar15 != '\x05'" (cast_expression "(char)iVar15" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar15")) (!= "!=") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((char)piVar3[5] != '\0')" (( "(") (binary_expression "(char)piVar3[5] != '\0'" (cast_expression "(char)piVar3[5]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar11 = FUN_0001f620(piVar3), iVar11 == 0)" (( "(") (comma_expression "iVar11 = FUN_0001f620(piVar3), iVar11 == 0" (assignment_expression "iVar11 = FUN_0001f620(piVar3)" (identifier "iVar11") (= "=") (call_expression "FUN_0001f620(piVar3)" (identifier "FUN_0001f620") (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (, ",") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";")))) (labeled_statement "LAB_00062d1c:\n        if (piVar3[3] != 0) goto LAB_00062cc3;" (statement_identifier "LAB_00062d1c") (: ":") (if_statement "if (piVar3[3] != 0) goto LAB_00062cc3;" (if "if") (parenthesized_expression "(piVar3[3] != 0)" (( "(") (binary_expression "piVar3[3] != 0" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062cc3;" (goto "goto") (statement_identifier "LAB_00062cc3") (; ";")))) (labeled_statement "LAB_00062d23:\n        iVar15 = FUN_000622f0();" (statement_identifier "LAB_00062d23") (: ":") (expression_statement "iVar15 = FUN_000622f0();" (assignment_expression "iVar15 = FUN_000622f0()" (identifier "iVar15") (= "=") (call_expression "FUN_000622f0()" (identifier "FUN_000622f0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;" (if "if") (parenthesized_expression "((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0))" (( "(") (binary_expression "(iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)" (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar15 = FUN_0001f5a0(0), iVar15 != 0)" (( "(") (comma_expression "iVar15 = FUN_0001f5a0(0), iVar15 != 0" (assignment_expression "iVar15 = FUN_0001f5a0(0)" (identifier "iVar15") (= "=") (call_expression "FUN_0001f5a0(0)" (identifier "FUN_0001f5a0") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00062d35;" (goto "goto") (statement_identifier "LAB_00062d35") (; ";"))) (expression_statement "piVar6 = *(int **)(local_28 + 0x38);" (assignment_expression "piVar6 = *(int **)(local_28 + 0x38)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(local_28 + 0x38)" (* "*") (cast_expression "(int **)(local_28 + 0x38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_28 + 0x38)" (( "(") (binary_expression "local_28 + 0x38" (identifier "local_28") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "uVar7 = piVar6[7];" (assignment_expression "uVar7 = piVar6[7]" (identifier "uVar7") (= "=") (subscript_expression "piVar6[7]" (identifier "piVar6") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (identifier "local_44") (= "=") (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" (identifier "uVar7") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" (( "(") (binary_expression "uVar7 & 0xff0000" (identifier "uVar7") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" (( "(") (binary_expression "uVar7 & 0xff00" (identifier "uVar7") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar7 << 0x18" (identifier "uVar7") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar7 = *(uint *)(*piVar3 + 0x18);" (assignment_expression "uVar7 = *(uint *)(*piVar3 + 0x18)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(*piVar3 + 0x18)" (* "*") (cast_expression "(uint *)(*piVar3 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar3 + 0x18)" (( "(") (binary_expression "*piVar3 + 0x18" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;" (assignment_expression "uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000" (identifier "uVar14") (= "=") (binary_expression "*(uint *)(piVar3[1] + 0x1c) & 0x2000000" (pointer_expression "*(uint *)(piVar3[1] + 0x1c)" (* "*") (cast_expression "(uint *)(piVar3[1] + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[1] + 0x1c)" (( "(") (binary_expression "piVar3[1] + 0x1c" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "0x2000000"))) (; ";")) (if_statement "if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }\n        else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" (if "if") (parenthesized_expression "((local_44 == 0) || (piVar6[6] != piVar6[0x17]))" (( "(") (binary_expression "(local_44 == 0) || (piVar6[6] != piVar6[0x17])" (parenthesized_expression "(local_44 == 0)" (( "(") (binary_expression "local_44 == 0" (identifier "local_44") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar6[6] != piVar6[0x17])" (( "(") (binary_expression "piVar6[6] != piVar6[0x17]" (subscript_expression "piVar6[6]" (identifier "piVar6") ([ "[") (number_literal "6") (] "]")) (!= "!=") (subscript_expression "piVar6[0x17]" (identifier "piVar6") ([ "[") (number_literal "0x17") (] "]"))) () ")"))) () ")")) (compound_statement "{\n          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;\n        }" ({ "{") (if_statement "if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;" (if "if") (parenthesized_expression "((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0))" (( "(") (binary_expression "(uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)" (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_44 = uVar7, uVar7 == 0)" (( "(") (comma_expression "local_44 = uVar7, uVar7 == 0" (assignment_expression "local_44 = uVar7" (identifier "local_44") (= "=") (identifier "uVar7")) (, ",") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_000630a0;" (goto "goto") (statement_identifier "LAB_000630a0") (; ";"))) (} "}")) (else_clause "else if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" (else "else") (if_statement "if (uVar14 != 0) {\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000630a0:\n          local_44 = 0;\n          goto LAB_000630a8;\n        }" ({ "{") (labeled_statement "LAB_000630a0:\n          local_44 = 0;" (statement_identifier "LAB_000630a0") (: ":") (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_000630a8;" (goto "goto") (statement_identifier "LAB_000630a8") (; ";")) (} "}"))))) (if_statement "if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)) goto LAB_00062f1c;" (if "if") (parenthesized_expression "((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074))" (( "(") (binary_expression "(((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||\n           (piVar6[3] != 0x332074)" (parenthesized_expression "(((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f))" (( "(") (binary_expression "((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)" (parenthesized_expression "((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574))" (( "(") (binary_expression "(*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)" (parenthesized_expression "(*piVar6 != 0x694c5153)" (( "(") (binary_expression "*piVar6 != 0x694c5153" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (!= "!=") (number_literal "0x694c5153")) () ")")) (|| "||") (parenthesized_expression "(piVar6[1] != 0x66206574)" (( "(") (binary_expression "piVar6[1] != 0x66206574" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x66206574")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(piVar6[2] != 0x616d726f)" (( "(") (binary_expression "piVar6[2] != 0x616d726f" (subscript_expression "piVar6[2]" (identifier "piVar6") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0x616d726f")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(piVar6[3] != 0x332074)" (( "(") (binary_expression "piVar6[3] != 0x332074" (subscript_expression "piVar6[3]" (identifier "piVar6") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0x332074")) () ")"))) () ")")) (goto_statement "goto LAB_00062f1c;" (goto "goto") (statement_identifier "LAB_00062f1c") (; ";"))) (if_statement "if (2 < *(byte *)((int)piVar6 + 0x12)) {\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }" (if "if") (parenthesized_expression "(2 < *(byte *)((int)piVar6 + 0x12))" (( "(") (binary_expression "2 < *(byte *)((int)piVar6 + 0x12)" (number_literal "2") (< "<") (pointer_expression "*(byte *)((int)piVar6 + 0x12)" (* "*") (cast_expression "(byte *)((int)piVar6 + 0x12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0x12)" (( "(") (binary_expression "(int)piVar6 + 0x12" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0x12")) () ")"))))) () ")")) (compound_statement "{\n          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;\n        }" ({ "{") (expression_statement "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;" (assignment_expression "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "*(ushort *)(piVar3 + 6) | 1" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;" (if "if") (parenthesized_expression "(2 < *(byte *)((int)piVar6 + 0x13))" (( "(") (binary_expression "2 < *(byte *)((int)piVar6 + 0x13)" (number_literal "2") (< "<") (pointer_expression "*(byte *)((int)piVar6 + 0x13)" (* "*") (cast_expression "(byte *)((int)piVar6 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0x13)" (( "(") (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0x13")) () ")"))))) () ")")) (goto_statement "goto LAB_00062f1c;" (goto "goto") (statement_identifier "LAB_00062f1c") (; ";"))) (if_statement "if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }" (if "if") (parenthesized_expression "((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0))" (( "(") (binary_expression "(*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)" (parenthesized_expression "(*(byte *)((int)piVar6 + 0x13) == 2)" (( "(") (binary_expression "*(byte *)((int)piVar6 + 0x13) == 2" (pointer_expression "*(byte *)((int)piVar6 + 0x13)" (* "*") (cast_expression "(byte *)((int)piVar6 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0x13)" (( "(") (binary_expression "(int)piVar6 + 0x13" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0x13")) () ")")))) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(piVar3 + 6) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(piVar3 + 6) & 0x20) == 0" (parenthesized_expression "(*(byte *)(piVar3 + 6) & 0x20)" (( "(") (binary_expression "*(byte *)(piVar3 + 6) & 0x20" (pointer_expression "*(byte *)(piVar3 + 6)" (* "*") (cast_expression "(byte *)(piVar3 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          iVar15 = FUN_0001799c();\n          if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }\nLAB_0006325c:\n          FUN_00061f80();\n          piVar3[3] = 0;\nLAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;\n          goto LAB_00062d1c;\n        }" ({ "{") (expression_statement "iVar15 = FUN_0001799c();" (assignment_expression "iVar15 = FUN_0001799c()" (identifier "iVar15") (= "=") (call_expression "FUN_0001799c()" (identifier "FUN_0001799c") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar15 = 0;\n            FUN_00061f80();\n            iVar11 = piVar3[3];\n            goto LAB_00062cbf;\n          }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" (identifier "FUN_00061f80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = piVar3[3];" (assignment_expression "iVar11 = piVar3[3]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (goto_statement "goto LAB_00062cbf;" (goto "goto") (statement_identifier "LAB_00062cbf") (; ";")) (} "}"))) (labeled_statement "LAB_0006325c:\n          FUN_00061f80();" (statement_identifier "LAB_0006325c") (: ":") (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" (identifier "FUN_00061f80") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00063279:\n          if (iVar15 != 0) goto LAB_00062d35;" (statement_identifier "LAB_00063279") (: ":") (if_statement "if (iVar15 != 0) goto LAB_00062d35;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062d35;" (goto "goto") (statement_identifier "LAB_00062d35") (; ";")))) (goto_statement "goto LAB_00062d1c;" (goto "goto") (statement_identifier "LAB_00062d1c") (; ";")) (} "}"))) (if_statement "if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))) {\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }" (if "if") (parenthesized_expression "(((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101))))" (( "(") (binary_expression "((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))\n           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))" (parenthesized_expression "((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))" (( "(") (binary_expression "(*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' ')" (parenthesized_expression "(*(short *)((int)piVar6 + 0x15) != 0x2040)" (( "(") (binary_expression "*(short *)((int)piVar6 + 0x15) != 0x2040" (pointer_expression "*(short *)((int)piVar6 + 0x15)" (* "*") (cast_expression "(short *)((int)piVar6 + 0x15)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0x15)" (( "(") (binary_expression "(int)piVar6 + 0x15" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0x15")) () ")")))) (!= "!=") (number_literal "0x2040")) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)piVar6 + 0x17) != ' ')" (( "(") (binary_expression "*(char *)((int)piVar6 + 0x17) != ' '" (pointer_expression "*(char *)((int)piVar6 + 0x17)" (* "*") (cast_expression "(char *)((int)piVar6 + 0x17)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0x17)" (( "(") (binary_expression "(int)piVar6 + 0x17" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0x17")) () ")")))) (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)))" (( "(") (parenthesized_expression "(uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101))" (( "(") (comma_expression "uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)" (assignment_expression "uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10" (identifier "uVar14") (= "=") (binary_expression "(uint)*(byte *)(piVar6 + 4) << 8 |\n                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10" (binary_expression "(uint)*(byte *)(piVar6 + 4) << 8" (binary_expression "(uint)*(byte *)(piVar6 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(piVar6 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 4)" (( "(") (binary_expression "piVar6 + 4" (identifier "piVar6") (+ "+") (number_literal "4")) () ")")))) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uint)*(byte *)((int)piVar6 + 0x11) << 0x10" (binary_expression "(uint)*(byte *)((int)piVar6 + 0x11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)piVar6 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0x11)" (( "(") (binary_expression "(int)piVar6 + 0x11" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0x11")) () ")")))) (<< "<<") (number_literal "0x10")))) (, ",") (binary_expression "(uVar14 - 1 & uVar14) != 0 ||\n               (0xfeff < uVar14 - 0x101)" (binary_expression "(uVar14 - 1 & uVar14) != 0" (parenthesized_expression "(uVar14 - 1 & uVar14)" (( "(") (binary_expression "uVar14 - 1 & uVar14" (binary_expression "uVar14 - 1" (identifier "uVar14") (- "-") (number_literal "1")) (& "&") (identifier "uVar14")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(0xfeff < uVar14 - 0x101)" (( "(") (binary_expression "0xfeff < uVar14 - 0x101" (number_literal "0xfeff") (< "<") (binary_expression "uVar14 - 0x101" (identifier "uVar14") (- "-") (number_literal "0x101"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n          iVar15 = 0x1a;\n          FUN_00061f80();\n          piVar3[3] = 0;\n          goto LAB_00062ce2;\n        }" ({ "{") (expression_statement "iVar15 = 0x1a;" (assignment_expression "iVar15 = 0x1a" (identifier "iVar15") (= "=") (number_literal "0x1a")) (; ";")) (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" (identifier "FUN_00061f80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00062ce2;" (goto "goto") (statement_identifier "LAB_00062ce2") (; ";")) (} "}"))) (expression_statement "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;" (assignment_expression "*(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "*(ushort *)(piVar3 + 6) | 2" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "uVar12 = uVar14 - *(byte *)(piVar6 + 5);" (assignment_expression "uVar12 = uVar14 - *(byte *)(piVar6 + 5)" (identifier "uVar12") (= "=") (binary_expression "uVar14 - *(byte *)(piVar6 + 5)" (identifier "uVar14") (- "-") (pointer_expression "*(byte *)(piVar6 + 5)" (* "*") (cast_expression "(byte *)(piVar6 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 5)" (( "(") (binary_expression "piVar6 + 5" (identifier "piVar6") (+ "+") (number_literal "5")) () ")")))))) (; ";")) (if_statement "if (uVar14 != piVar3[9]) {\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }" (if "if") (parenthesized_expression "(uVar14 != piVar3[9])" (( "(") (binary_expression "uVar14 != piVar3[9]" (identifier "uVar14") (!= "!=") (subscript_expression "piVar3[9]" (identifier "piVar3") ([ "[") (number_literal "9") (] "]"))) () ")")) (compound_statement "{\n          FUN_00061f80();\n          piVar3[10] = uVar12;\n          piVar3[9] = uVar14;\n          if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }\n          iVar15 = FUN_00041550();\n          goto LAB_00063279;\n        }" ({ "{") (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" (identifier "FUN_00061f80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar3[10] = uVar12;" (assignment_expression "piVar3[10] = uVar12" (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "piVar3[9] = uVar14;" (assignment_expression "piVar3[9] = uVar14" (subscript_expression "piVar3[9]" (identifier "piVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (piVar3[0x15] != 0) {\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }" (if "if") (parenthesized_expression "(piVar3[0x15] != 0)" (( "(") (binary_expression "piVar3[0x15] != 0" (subscript_expression "piVar3[0x15]" (identifier "piVar3") ([ "[") (number_literal "0x15") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar3[0x15] = piVar3[0x15] + -4;\n            FUN_00026f80();\n            piVar3[0x15] = 0;\n          }" ({ "{") (expression_statement "piVar3[0x15] = piVar3[0x15] + -4;" (assignment_expression "piVar3[0x15] = piVar3[0x15] + -4" (subscript_expression "piVar3[0x15]" (identifier "piVar3") ([ "[") (number_literal "0x15") (] "]")) (= "=") (binary_expression "piVar3[0x15] + -4" (subscript_expression "piVar3[0x15]" (identifier "piVar3") ([ "[") (number_literal "0x15") (] "]")) (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "FUN_00026f80();" (call_expression "FUN_00026f80()" (identifier "FUN_00026f80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar3[0x15] = 0;" (assignment_expression "piVar3[0x15] = 0" (subscript_expression "piVar3[0x15]" (identifier "piVar3") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar15 = FUN_00041550();" (assignment_expression "iVar15 = FUN_00041550()" (identifier "iVar15") (= "=") (call_expression "FUN_00041550()" (identifier "FUN_00041550") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_00063279;" (goto "goto") (statement_identifier "LAB_00063279") (; ";")) (} "}"))) (if_statement "if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }" (if "if") (parenthesized_expression "(((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44))" (( "(") (binary_expression "((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)" (parenthesized_expression "((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1)" (( "(") (binary_expression "(*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1" (parenthesized_expression "(*(uint *)(piVar3[1] + 0x1c) & 0x10000001)" (( "(") (binary_expression "*(uint *)(piVar3[1] + 0x1c) & 0x10000001" (pointer_expression "*(uint *)(piVar3[1] + 0x1c)" (* "*") (cast_expression "(uint *)(piVar3[1] + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[1] + 0x1c)" (( "(") (binary_expression "piVar3[1] + 0x1c" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "0x10000001")) () ")")) (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 < local_44)" (( "(") (binary_expression "uVar7 < local_44" (identifier "uVar7") (< "<") (identifier "local_44")) () ")"))) () ")")) (compound_statement "{\n          iVar15 = FUN_000383f0();\n          goto LAB_0006325c;\n        }" ({ "{") (expression_statement "iVar15 = FUN_000383f0();" (assignment_expression "iVar15 = FUN_000383f0()" (identifier "iVar15") (= "=") (call_expression "FUN_000383f0()" (identifier "FUN_000383f0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0006325c;" (goto "goto") (statement_identifier "LAB_0006325c") (; ";")) (} "}"))) (if_statement "if (0x1df < uVar12) {\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }" (if "if") (parenthesized_expression "(0x1df < uVar12)" (( "(") (binary_expression "0x1df < uVar12" (number_literal "0x1df") (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n          piVar3[10] = uVar12;\n          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;\n          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;\nLAB_000630a8:\n          piVar3[3] = local_28;\n          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;\n          *(ushort *)((int)piVar3 + 0x1a) = uVar13;\n          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;\n          *(short *)(piVar3 + 7) = sVar10;\n          *(short *)(piVar3 + 8) = sVar10;\n          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;\n          uVar9 = 0x7f;\n          if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }\n          *(char *)((int)piVar3 + 0x15) = (char)uVar9;\n          piVar3[0xc] = local_44;\n          iVar11 = local_28;\n          goto LAB_00062cbf;\n        }" ({ "{") (expression_statement "piVar3[10] = uVar12;" (assignment_expression "piVar3[10] = uVar12" (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;" (assignment_expression "*(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0" (pointer_expression "*(bool *)((int)piVar3 + 0x11)" (* "*") (cast_expression "(bool *)((int)piVar3 + 0x11)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x11)" (( "(") (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "piVar6[0xd] != 0" (subscript_expression "piVar6[0xd]" (identifier "piVar6") ([ "[") (number_literal "0xd") (] "]")) (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "*(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;" (assignment_expression "*(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0" (pointer_expression "*(bool *)((int)piVar3 + 0x12)" (* "*") (cast_expression "(bool *)((int)piVar3 + 0x12)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x12)" (( "(") (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (binary_expression "piVar6[0x10] != 0" (subscript_expression "piVar6[0x10]" (identifier "piVar6") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0"))) (; ";")) (labeled_statement "LAB_000630a8:\n          piVar3[3] = local_28;" (statement_identifier "LAB_000630a8") (: ":") (expression_statement "piVar3[3] = local_28;" (assignment_expression "piVar3[3] = local_28" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_28")) (; ";"))) (expression_statement "uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;" (assignment_expression "uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17" (identifier "uVar13") (= "=") (binary_expression "(short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17" (cast_expression "(short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff)" (( "(") (binary_expression "(uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff" (call_expression "(uint)((piVar3[10] + 0x3fffff4) * 0x40)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((piVar3[10] + 0x3fffff4) * 0x40)" (( "(") (binary_expression "(piVar3[10] + 0x3fffff4) * 0x40" (parenthesized_expression "(piVar3[10] + 0x3fffff4)" (( "(") (binary_expression "piVar3[10] + 0x3fffff4" (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "0x3fffff4")) () ")")) (* "*") (number_literal "0x40")) () ")"))) (/ "/") (number_literal "0xff")) () ")"))) (- "-") (number_literal "0x17"))) (; ";")) (expression_statement "*(ushort *)((int)piVar3 + 0x1a) = uVar13;" (assignment_expression "*(ushort *)((int)piVar3 + 0x1a) = uVar13" (pointer_expression "*(ushort *)((int)piVar3 + 0x1a)" (* "*") (cast_expression "(ushort *)((int)piVar3 + 0x1a)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x1a)" (( "(") (binary_expression "(int)piVar3 + 0x1a" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x1a")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;" (assignment_expression "sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17" (identifier "sVar10") (= "=") (binary_expression "(short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17" (cast_expression "(short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff)" (( "(") (binary_expression "(uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff" (call_expression "(uint)((piVar3[10] + 0x7fffff4) * 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((piVar3[10] + 0x7fffff4) * 0x20)" (( "(") (binary_expression "(piVar3[10] + 0x7fffff4) * 0x20" (parenthesized_expression "(piVar3[10] + 0x7fffff4)" (( "(") (binary_expression "piVar3[10] + 0x7fffff4" (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "0x7fffff4")) () ")")) (* "*") (number_literal "0x20")) () ")"))) (/ "/") (number_literal "0xff")) () ")"))) (+ "+") (number_literal "-0x17"))) (; ";")) (expression_statement "*(short *)(piVar3 + 7) = sVar10;" (assignment_expression "*(short *)(piVar3 + 7) = sVar10" (pointer_expression "*(short *)(piVar3 + 7)" (* "*") (cast_expression "(short *)(piVar3 + 7)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 7)" (( "(") (binary_expression "piVar3 + 7" (identifier "piVar3") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "sVar10")) (; ";")) (expression_statement "*(short *)(piVar3 + 8) = sVar10;" (assignment_expression "*(short *)(piVar3 + 8) = sVar10" (pointer_expression "*(short *)(piVar3 + 8)" (* "*") (cast_expression "(short *)(piVar3 + 8)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 8)" (( "(") (binary_expression "piVar3 + 8" (identifier "piVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "sVar10")) (; ";")) (expression_statement "*(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;" (assignment_expression "*(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23" (pointer_expression "*(short *)((int)piVar3 + 0x1e)" (* "*") (cast_expression "(short *)((int)piVar3 + 0x1e)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x1e)" (( "(") (binary_expression "(int)piVar3 + 0x1e" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x1e")) () ")")))) (= "=") (binary_expression "(short)piVar3[10] + -0x23" (cast_expression "(short)piVar3[10]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]"))) (+ "+") (number_literal "-0x23"))) (; ";")) (expression_statement "uVar9 = 0x7f;" (assignment_expression "uVar9 = 0x7f" (identifier "uVar9") (= "=") (number_literal "0x7f")) (; ";")) (if_statement "if (uVar13 < 0x80) {\n            uVar9 = uVar13;\n          }" (if "if") (parenthesized_expression "(uVar13 < 0x80)" (( "(") (binary_expression "uVar13 < 0x80" (identifier "uVar13") (< "<") (number_literal "0x80")) () ")")) (compound_statement "{\n            uVar9 = uVar13;\n          }" ({ "{") (expression_statement "uVar9 = uVar13;" (assignment_expression "uVar9 = uVar13" (identifier "uVar9") (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (expression_statement "*(char *)((int)piVar3 + 0x15) = (char)uVar9;" (assignment_expression "*(char *)((int)piVar3 + 0x15) = (char)uVar9" (pointer_expression "*(char *)((int)piVar3 + 0x15)" (* "*") (cast_expression "(char *)((int)piVar3 + 0x15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x15)" (( "(") (binary_expression "(int)piVar3 + 0x15" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (cast_expression "(char)uVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "piVar3[0xc] = local_44;" (assignment_expression "piVar3[0xc] = local_44" (subscript_expression "piVar3[0xc]" (identifier "piVar3") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "iVar11 = local_28;" (assignment_expression "iVar11 = local_28" (identifier "iVar11") (= "=") (identifier "local_28")) (; ";")) (goto_statement "goto LAB_00062cbf;" (goto "goto") (statement_identifier "LAB_00062cbf") (; ";")) (} "}"))) (labeled_statement "LAB_00062f1c:\n        iVar15 = 0x1a;" (statement_identifier "LAB_00062f1c") (: ":") (expression_statement "iVar15 = 0x1a;" (assignment_expression "iVar15 = 0x1a" (identifier "iVar15") (= "=") (number_literal "0x1a")) (; ";"))) (expression_statement "FUN_00061f80();" (call_expression "FUN_00061f80()" (identifier "FUN_00061f80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00062ce2:" (statement_identifier "LAB_00062ce2") (: ":") (expression_statement "" (; ""))) (} "}")) (while "while") (parenthesized_expression "((char)piVar3[5] == '\0')" (( "(") (binary_expression "(char)piVar3[5] == '\0'" (cast_expression "(char)piVar3[5]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";"))) (goto_statement "goto LAB_00062c00;" (goto "goto") (statement_identifier "LAB_00062c00") (; ";")) (} "}")))) (if_statement "if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;" (if "if") (parenthesized_expression "((*(byte *)(piVar3 + 6) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(piVar3 + 6) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar3 + 6) & 1)" (( "(") (binary_expression "*(byte *)(piVar3 + 6) & 1" (pointer_expression "*(byte *)(piVar3 + 6)" (* "*") (cast_expression "(byte *)(piVar3 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062cdd;" (goto "goto") (statement_identifier "LAB_00062cdd") (; ";"))) (expression_statement "iVar15 = *(int *)(iVar4 + 0x28);" (assignment_expression "iVar15 = *(int *)(iVar4 + 0x28)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar4 + 0x28)" (* "*") (cast_expression "(int *)(iVar4 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x28)" (( "(") (binary_expression "iVar4 + 0x28" (identifier "iVar4") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (iVar15 != 0) {\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;\nLAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }\n      iVar15 = 0x205;\n      goto LAB_00062c00;\n    }" ({ "{") (labeled_statement "LAB_00062e70:\n      if (iVar15 != 0x205) goto LAB_00062d35;" (statement_identifier "LAB_00062e70") (: ":") (if_statement "if (iVar15 != 0x205) goto LAB_00062d35;" (if "if") (parenthesized_expression "(iVar15 != 0x205)" (( "(") (binary_expression "iVar15 != 0x205" (identifier "iVar15") (!= "!=") (number_literal "0x205")) () ")")) (goto_statement "goto LAB_00062d35;" (goto "goto") (statement_identifier "LAB_00062d35") (; ";")))) (labeled_statement "LAB_00062e7c:\n      if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }" (statement_identifier "LAB_00062e7c") (: ":") (if_statement "if ((char)piVar3[5] == '\0') {\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }" (if "if") (parenthesized_expression "((char)piVar3[5] == '\0')" (( "(") (binary_expression "(char)piVar3[5] == '\0'" (cast_expression "(char)piVar3[5]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar15 = 5;\n        goto LAB_00062cec;\n      }" ({ "{") (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" (identifier "iVar15") (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_00062cec;" (goto "goto") (statement_identifier "LAB_00062cec") (; ";")) (} "}")))) (expression_statement "iVar15 = 0x205;" (assignment_expression "iVar15 = 0x205" (identifier "iVar15") (= "=") (number_literal "0x205")) (; ";")) (goto_statement "goto LAB_00062c00;" (goto "goto") (statement_identifier "LAB_00062c00") (; ";")) (} "}"))) (expression_statement "*(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';" (assignment_expression "*(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02'" (pointer_expression "*(bool *)(iVar4 + 0x15)" (* "*") (cast_expression "(bool *)(iVar4 + 0x15)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x15)" (( "(") (binary_expression "iVar4 + 0x15" (identifier "iVar4") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (binary_expression "*(char *)(*param_1 + 0x4c) == '\x02'" (pointer_expression "*(char *)(*param_1 + 0x4c)" (* "*") (cast_expression "(char *)(*param_1 + 0x4c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x4c)" (( "(") (binary_expression "*param_1 + 0x4c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x4c")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")))) (; ";")) (if_statement "if (*(char *)(iVar4 + 0x10) == '\x01') {\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 0x10) == '\x01')" (( "(") (binary_expression "*(char *)(iVar4 + 0x10) == '\x01'" (pointer_expression "*(char *)(iVar4 + 0x10)" (* "*") (cast_expression "(char *)(iVar4 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n      iVar11 = *(int *)(iVar4 + 0xd4);\n      if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }\n      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }\nLAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);\n      *(undefined1 *)(iVar4 + 0x10) = 2;\n      *(undefined4 *)(iVar4 + 0x48) = 0;\n      *(undefined4 *)(iVar4 + 0x4c) = 0;\n      *(undefined4 *)(iVar4 + 0x24) = uVar8;\n      *(undefined4 *)(iVar4 + 0x20) = uVar8;\n      *(undefined4 *)(iVar4 + 0x1c) = uVar8;\n    }" ({ "{") (expression_statement "iVar11 = *(int *)(iVar4 + 0xd4);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0xd4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar4 + 0xd4)" (* "*") (cast_expression "(int *)(iVar4 + 0xd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xd4)" (( "(") (binary_expression "iVar4 + 0xd4" (identifier "iVar4") (+ "+") (number_literal "0xd4")) () ")"))))) (; ";")) (if_statement "if (iVar11 != 0) {\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }\n        if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }\n        if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;\n        *(undefined1 *)(iVar11 + 0x2c) = 1;\n        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);\n        if (iVar15 == 0) goto LAB_00063076;\n        if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }\n        *(undefined1 *)(iVar11 + 0x2c) = 0;\n        goto LAB_00062e7c;\n      }" ({ "{") (if_statement "if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }" (if "if") (parenthesized_expression "((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')" (parenthesized_expression "(*(char *)(iVar4 + 4) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 4) != '\0'" (pointer_expression "*(char *)(iVar4 + 4)" (* "*") (cast_expression "(char *)(iVar4 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" (* "*") (cast_expression "(char *)(iVar11 + 0x2b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2b)" (( "(") (binary_expression "iVar11 + 0x2b" (identifier "iVar11") (+ "+") (number_literal "0x2b")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }\n          if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }\n          *(undefined1 *)(iVar11 + 0x2b) = 1;\n          iVar11 = *(int *)(iVar4 + 0xd4);\n        }" ({ "{") (if_statement "if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4))" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)" (parenthesized_expression "(*(byte *)(iVar4 + 0x11) == 5)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x11) == 5" (pointer_expression "*(byte *)(iVar4 + 0x11)" (* "*") (cast_expression "(byte *)(iVar4 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x11)" (( "(") (binary_expression "iVar4 + 0x11" (identifier "iVar4") (+ "+") (number_literal "0x11")) () ")")))) (== "==") (number_literal "5")) () ")")) (|| "||") (parenthesized_expression "(*(byte *)(iVar4 + 0x11) < 4)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x11) < 4" (pointer_expression "*(byte *)(iVar4 + 0x11)" (* "*") (cast_expression "(byte *)(iVar4 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x11)" (( "(") (binary_expression "iVar4 + 0x11" (identifier "iVar4") (+ "+") (number_literal "0x11")) () ")")))) (< "<") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n            iVar15 = FUN_00027390();\n            if (iVar15 != 0) goto LAB_00062e70;\n            iVar11 = *(int *)(iVar4 + 0xd4);\n          }" ({ "{") (expression_statement "iVar15 = FUN_00027390();" (assignment_expression "iVar15 = FUN_00027390()" (identifier "iVar15") (= "=") (call_expression "FUN_00027390()" (identifier "FUN_00027390") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) goto LAB_00062e70;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062e70;" (goto "goto") (statement_identifier "LAB_00062e70") (; ";"))) (expression_statement "iVar11 = *(int *)(iVar4 + 0xd4);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0xd4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar4 + 0xd4)" (* "*") (cast_expression "(int *)(iVar4 + 0xd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xd4)" (( "(") (binary_expression "iVar4 + 0xd4" (identifier "iVar4") (+ "+") (number_literal "0xd4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar11 + 0x2b) == '\0') {\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" (* "*") (cast_expression "(char *)(iVar11 + 0x2b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2b)" (( "(") (binary_expression "iVar11 + 0x2b" (identifier "iVar11") (+ "+") (number_literal "0x2b")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            (**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);\n          }" ({ "{") (expression_statement "(**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);" (call_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))\n                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5)" (parenthesized_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar11 + 4) + 0x38)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar11 + 4) + 0x38)" (* "*") (cast_expression "(code **)(**(int **)(iVar11 + 4) + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar11 + 4) + 0x38)" (( "(") (binary_expression "**(int **)(iVar11 + 4) + 0x38" (pointer_expression "**(int **)(iVar11 + 4)" (* "*") (pointer_expression "*(int **)(iVar11 + 4)" (* "*") (cast_expression "(int **)(iVar11 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5)" (( "(") (pointer_expression "*(int **)(iVar11 + 4)" (* "*") (cast_expression "(int **)(iVar11 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (, ",") (binary_expression "*(short *)(iVar11 + 0x28) + 3" (pointer_expression "*(short *)(iVar11 + 0x28)" (* "*") (cast_expression "(short *)(iVar11 + 0x28)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x28)" (( "(") (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "3")) (, ",") (number_literal "1") (, ",") (number_literal "5") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(iVar11 + 0x2b) = 1;" (assignment_expression "*(undefined1 *)(iVar11 + 0x2b) = 1" (pointer_expression "*(undefined1 *)(iVar11 + 0x2b)" (* "*") (cast_expression "(undefined1 *)(iVar11 + 0x2b)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2b)" (( "(") (binary_expression "iVar11 + 0x2b" (identifier "iVar11") (+ "+") (number_literal "0x2b")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar11 = *(int *)(iVar4 + 0xd4);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0xd4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar4 + 0xd4)" (* "*") (cast_expression "(int *)(iVar4 + 0xd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xd4)" (( "(") (binary_expression "iVar4 + 0xd4" (identifier "iVar4") (+ "+") (number_literal "0xd4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar11 + 0x2e) != '\0') {\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 0x2e) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 0x2e) != '\0'" (pointer_expression "*(char *)(iVar11 + 0x2e)" (* "*") (cast_expression "(char *)(iVar11 + 0x2e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2e)" (( "(") (binary_expression "iVar11 + 0x2e" (identifier "iVar11") (+ "+") (number_literal "0x2e")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00062cdd:\n          iVar15 = 8;\n          goto LAB_00062ce2;\n        }" ({ "{") (labeled_statement "LAB_00062cdd:\n          iVar15 = 8;" (statement_identifier "LAB_00062cdd") (: ":") (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" (identifier "iVar15") (= "=") (number_literal "8")) (; ";"))) (goto_statement "goto LAB_00062ce2;" (goto "goto") (statement_identifier "LAB_00062ce2") (; ";")) (} "}"))) (if_statement "if ((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)) goto LAB_00062e70;" (if "if") (parenthesized_expression "((*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0))" (( "(") (binary_expression "(*(char *)(iVar11 + 0x2b) == '\0') &&\n           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)" (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" (* "*") (cast_expression "(char *)(iVar11 + 0x2b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2b)" (( "(") (binary_expression "iVar11 + 0x2b" (identifier "iVar11") (+ "+") (number_literal "0x2b")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0)" (( "(") (comma_expression "iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),\n           iVar15 != 0" (assignment_expression "iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10)" (identifier "iVar15") (= "=") (call_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10)" (parenthesized_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar11 + 4) + 0x38)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar11 + 4) + 0x38)" (* "*") (cast_expression "(code **)(**(int **)(iVar11 + 4) + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar11 + 4) + 0x38)" (( "(") (binary_expression "**(int **)(iVar11 + 4) + 0x38" (pointer_expression "**(int **)(iVar11 + 4)" (* "*") (pointer_expression "*(int **)(iVar11 + 4)" (* "*") (cast_expression "(int **)(iVar11 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar11 + 4),0,1,10)" (( "(") (pointer_expression "*(int **)(iVar11 + 4)" (* "*") (cast_expression "(int **)(iVar11 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "10") () ")")))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00062e70;" (goto "goto") (statement_identifier "LAB_00062e70") (; ";"))) (expression_statement "*(undefined1 *)(iVar11 + 0x2c) = 1;" (assignment_expression "*(undefined1 *)(iVar11 + 0x2c) = 1" (pointer_expression "*(undefined1 *)(iVar11 + 0x2c)" (* "*") (cast_expression "(undefined1 *)(iVar11 + 0x2c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2c)" (( "(") (binary_expression "iVar11 + 0x2c" (identifier "iVar11") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);" (assignment_expression "iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30)" (identifier "iVar15") (= "=") (call_expression "memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30)" (identifier "memcmp") (argument_list "((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30)" (( "(") (cast_expression "(void *)(iVar11 + 0x34)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x34)" (( "(") (binary_expression "iVar11 + 0x34" (identifier "iVar11") (+ "+") (number_literal "0x34")) () ")"))) (, ",") (cast_expression "(void *)**(undefined4 **)(iVar11 + 0x20)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(iVar11 + 0x20)" (* "*") (pointer_expression "*(undefined4 **)(iVar11 + 0x20)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x20)" (( "(") (binary_expression "iVar11 + 0x20" (identifier "iVar11") (+ "+") (number_literal "0x20")) () ")")))))) (, ",") (number_literal "0x30") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) goto LAB_00063076;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00063076;" (goto "goto") (statement_identifier "LAB_00063076") (; ";"))) (if_statement "if (*(char *)(iVar11 + 0x2b) == '\0') {\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 0x2b) == '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 0x2b) == '\0'" (pointer_expression "*(char *)(iVar11 + 0x2b)" (* "*") (cast_expression "(char *)(iVar11 + 0x2b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2b)" (( "(") (binary_expression "iVar11 + 0x2b" (identifier "iVar11") (+ "+") (number_literal "0x2b")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);\n        }" ({ "{") (expression_statement "(**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);" (call_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9)" (parenthesized_expression "(**(code **)(**(int **)(iVar11 + 4) + 0x38))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar11 + 4) + 0x38)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar11 + 4) + 0x38)" (* "*") (cast_expression "(code **)(**(int **)(iVar11 + 4) + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar11 + 4) + 0x38)" (( "(") (binary_expression "**(int **)(iVar11 + 4) + 0x38" (pointer_expression "**(int **)(iVar11 + 4)" (* "*") (pointer_expression "*(int **)(iVar11 + 4)" (* "*") (cast_expression "(int **)(iVar11 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar11 + 4),0,1,9)" (( "(") (pointer_expression "*(int **)(iVar11 + 4)" (* "*") (cast_expression "(int **)(iVar11 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "9") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(iVar11 + 0x2c) = 0;" (assignment_expression "*(undefined1 *)(iVar11 + 0x2c) = 0" (pointer_expression "*(undefined1 *)(iVar11 + 0x2c)" (* "*") (cast_expression "(undefined1 *)(iVar11 + 0x2c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2c)" (( "(") (binary_expression "iVar11 + 0x2c" (identifier "iVar11") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00062e7c;" (goto "goto") (statement_identifier "LAB_00062e7c") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }\n      else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5))" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)" (parenthesized_expression "(*(byte *)(iVar4 + 0x11) < 2)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x11) < 2" (pointer_expression "*(byte *)(iVar4 + 0x11)" (* "*") (cast_expression "(byte *)(iVar4 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x11)" (( "(") (binary_expression "iVar4 + 0x11" (identifier "iVar4") (+ "+") (number_literal "0x11")) () ")")))) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(*(byte *)(iVar4 + 0x11) == 5)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x11) == 5" (pointer_expression "*(byte *)(iVar4 + 0x11)" (* "*") (cast_expression "(byte *)(iVar4 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x11)" (( "(") (binary_expression "iVar4 + 0x11" (identifier "iVar4") (+ "+") (number_literal "0x11")) () ")")))) (== "==") (number_literal "5")) () ")"))) () ")")) (compound_statement "{\n        iVar15 = FUN_00027390();\n        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;\nLAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;\n      }" ({ "{") (expression_statement "iVar15 = FUN_00027390();" (assignment_expression "iVar15 = FUN_00027390()" (identifier "iVar15") (= "=") (call_expression "FUN_00027390()" (identifier "FUN_00027390") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;" (if "if") (parenthesized_expression "((1 < extraout_EDX) && (iVar15 == 0))" (( "(") (binary_expression "(1 < extraout_EDX) && (iVar15 == 0)" (parenthesized_expression "(1 < extraout_EDX)" (( "(") (binary_expression "1 < extraout_EDX" (number_literal "1") (< "<") (identifier "extraout_EDX")) () ")")) (&& "&&") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00062e57;" (goto "goto") (statement_identifier "LAB_00062e57") (; ";"))) (labeled_statement "LAB_00062e67:\n        if (iVar15 != 0) goto LAB_00062e70;" (statement_identifier "LAB_00062e67") (: ":") (if_statement "if (iVar15 != 0) goto LAB_00062e70;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062e70;" (goto "goto") (statement_identifier "LAB_00062e70") (; ";")))) (} "}")) (else_clause "else if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" (else "else") (if_statement "if (1 < extraout_EDX) {\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" (if "if") (parenthesized_expression "(1 < extraout_EDX)" (( "(") (binary_expression "1 < extraout_EDX" (number_literal "1") (< "<") (identifier "extraout_EDX")) () ")")) (compound_statement "{\nLAB_00062e57:\n        iVar15 = FUN_000273d0();\n        goto LAB_00062e67;\n      }" ({ "{") (labeled_statement "LAB_00062e57:\n        iVar15 = FUN_000273d0();" (statement_identifier "LAB_00062e57") (: ":") (expression_statement "iVar15 = FUN_000273d0();" (assignment_expression "iVar15 = FUN_000273d0()" (identifier "iVar15") (= "=") (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")")))) (; ";"))) (goto_statement "goto LAB_00062e67;" (goto "goto") (statement_identifier "LAB_00062e67") (; ";")) (} "}"))))) (labeled_statement "LAB_00063076:\n      uVar8 = *(undefined4 *)(iVar4 + 0x18);" (statement_identifier "LAB_00063076") (: ":") (expression_statement "uVar8 = *(undefined4 *)(iVar4 + 0x18);" (assignment_expression "uVar8 = *(undefined4 *)(iVar4 + 0x18)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (expression_statement "*(undefined1 *)(iVar4 + 0x10) = 2;" (assignment_expression "*(undefined1 *)(iVar4 + 0x10) = 2" (pointer_expression "*(undefined1 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined1 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x48) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x48) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x48)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x48)" (( "(") (binary_expression "iVar4 + 0x48" (identifier "iVar4") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x4c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x4c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x4c)" (( "(") (binary_expression "iVar4 + 0x4c" (identifier "iVar4") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x24) = uVar8;" (assignment_expression "*(undefined4 *)(iVar4 + 0x24) = uVar8" (pointer_expression "*(undefined4 *)(iVar4 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x24)" (( "(") (binary_expression "iVar4 + 0x24" (identifier "iVar4") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x20) = uVar8;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = uVar8" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar4 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if (piVar3[0xc] == 0) {\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }" (if "if") (parenthesized_expression "(piVar3[0xc] == 0)" (( "(") (binary_expression "piVar3[0xc] == 0" (subscript_expression "piVar3[0xc]" (identifier "piVar3") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar15 = FUN_00062aa0();\n      goto LAB_00062dc8;\n    }" ({ "{") (expression_statement "iVar15 = FUN_00062aa0();" (assignment_expression "iVar15 = FUN_00062aa0()" (identifier "iVar15") (= "=") (call_expression "FUN_00062aa0()" (identifier "FUN_00062aa0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_00062dc8;" (goto "goto") (statement_identifier "LAB_00062dc8") (; ";")) (} "}"))) (labeled_statement "LAB_00062dd0:\n    if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }" (statement_identifier "LAB_00062dd0") (: ":") (if_statement "if (((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }" (if "if") (parenthesized_expression "(((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0'))" (( "(") (binary_expression "((char)param_1[2] == '\0') &&\n       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')" (parenthesized_expression "((char)param_1[2] == '\0')" (( "(") (binary_expression "(char)param_1[2] == '\0'" (cast_expression "(char)param_1[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')" (( "(") (comma_expression "piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0'" (assignment_expression "piVar3[0xb] = piVar3[0xb] + 1" (subscript_expression "piVar3[0xb]" (identifier "piVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "piVar3[0xb] + 1" (subscript_expression "piVar3[0xb]" (identifier "piVar3") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1"))) (, ",") (binary_expression "*(char *)((int)param_1 + 9) != '\0'" (pointer_expression "*(char *)((int)param_1 + 9)" (* "*") (cast_expression "(char *)((int)param_1 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 9)" (( "(") (binary_expression "(int)param_1 + 9" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      *(undefined1 *)(param_1 + 10) = 1;\n      param_1[0xb] = piVar3[0x13];\n      piVar3[0x13] = (int)(param_1 + 8);\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 10) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 10) = 1" (pointer_expression "*(undefined1 *)(param_1 + 10)" (* "*") (cast_expression "(undefined1 *)(param_1 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[0xb] = piVar3[0x13];" (assignment_expression "param_1[0xb] = piVar3[0x13]" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "piVar3[0x13]" (identifier "piVar3") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "piVar3[0x13] = (int)(param_1 + 8);" (assignment_expression "piVar3[0x13] = (int)(param_1 + 8)" (subscript_expression "piVar3[0x13]" (identifier "piVar3") ([ "[") (number_literal "0x13") (] "]")) (= "=") (cast_expression "(int)(param_1 + 8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (expression_statement "bVar2 = *(byte *)(piVar3 + 5);" (assignment_expression "bVar2 = *(byte *)(piVar3 + 5)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(piVar3 + 5)" (* "*") (cast_expression "(byte *)(piVar3 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 5)" (( "(") (binary_expression "piVar3 + 5" (identifier "piVar3") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (if_statement "if (extraout_EDX == 0) {\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }" (if "if") (parenthesized_expression "(extraout_EDX == 0)" (( "(") (binary_expression "extraout_EDX == 0" (identifier "extraout_EDX") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined1 *)(param_1 + 2) = 1;\n      if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }\n      goto LAB_00062e08;\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 2) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 2) = 1" (pointer_expression "*(undefined1 *)(param_1 + 2)" (* "*") (cast_expression "(undefined1 *)(param_1 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar2 == 0) {\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }" (if "if") (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined1 *)(piVar3 + 5) = 1;\n      }" ({ "{") (expression_statement "*(undefined1 *)(piVar3 + 5) = 1;" (assignment_expression "*(undefined1 *)(piVar3 + 5) = 1" (pointer_expression "*(undefined1 *)(piVar3 + 5)" (* "*") (cast_expression "(undefined1 *)(piVar3 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 5)" (( "(") (binary_expression "piVar3 + 5" (identifier "piVar3") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (goto_statement "goto LAB_00062e08;" (goto "goto") (statement_identifier "LAB_00062e08") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(param_1 + 2) = 2;" (assignment_expression "*(undefined1 *)(param_1 + 2) = 2" (pointer_expression "*(undefined1 *)(param_1 + 2)" (* "*") (cast_expression "(undefined1 *)(param_1 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "2")) (; ";")) (if_statement "if (bVar2 < 2) {\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }" (if "if") (parenthesized_expression "(bVar2 < 2)" (( "(") (binary_expression "bVar2 < 2" (identifier "bVar2") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      *(undefined1 *)(piVar3 + 5) = 2;\n    }" ({ "{") (expression_statement "*(undefined1 *)(piVar3 + 5) = 2;" (assignment_expression "*(undefined1 *)(piVar3 + 5) = 2" (pointer_expression "*(undefined1 *)(piVar3 + 5)" (* "*") (cast_expression "(undefined1 *)(piVar3 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 5)" (( "(") (binary_expression "piVar3 + 5" (identifier "piVar3") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "iVar11 = piVar3[3];" (assignment_expression "iVar11 = piVar3[3]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar3[0x14] = (int)param_1;" (assignment_expression "piVar3[0x14] = (int)param_1" (subscript_expression "piVar3[0x14]" (identifier "piVar3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) (; ";")) (expression_statement "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf" (identifier "uVar9") (= "=") (binary_expression "*(ushort *)(piVar3 + 6) & 0xffbf" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xffbf"))) (; ";")) (if_statement "if (1 < extraout_EDX) {\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }" (if "if") (parenthesized_expression "(1 < extraout_EDX)" (( "(") (binary_expression "1 < extraout_EDX" (number_literal "1") (< "<") (identifier "extraout_EDX")) () ")")) (compound_statement "{\n      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;\n    }" ({ "{") (expression_statement "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;" (assignment_expression "uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40" (identifier "uVar9") (= "=") (binary_expression "*(ushort *)(piVar3 + 6) & 0xffbf | 0x40" (binary_expression "*(ushort *)(piVar3 + 6) & 0xffbf" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xffbf")) (| "|") (number_literal "0x40"))) (; ";")) (} "}"))) (expression_statement "*(ushort *)(piVar3 + 6) = uVar9;" (assignment_expression "*(ushort *)(piVar3 + 6) = uVar9" (pointer_expression "*(ushort *)(piVar3 + 6)" (* "*") (cast_expression "(ushort *)(piVar3 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);" (assignment_expression "uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" (* "*") (cast_expression "(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x38) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar11 + 0x38) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x38)" (* "*") (cast_expression "(int *)(iVar11 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x38)" (( "(") (binary_expression "iVar11 + 0x38" (identifier "iVar11") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))\n    goto LAB_00062d40;" (if "if") (parenthesized_expression "(piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))" (( "(") (binary_expression "piVar3[0xc] ==\n        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18)" (subscript_expression "piVar3[0xc]" (identifier "piVar3") ([ "[") (number_literal "0xc") (] "]")) (== "==") (parenthesized_expression "(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18)" (( "(") (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" (identifier "uVar7") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" (( "(") (binary_expression "uVar7 & 0xff0000" (identifier "uVar7") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" (( "(") (binary_expression "uVar7 & 0xff00" (identifier "uVar7") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar7 << 0x18" (identifier "uVar7") (<< "<<") (number_literal "0x18"))) () ")"))) () ")")) (goto_statement "goto LAB_00062d40;" (goto "goto") (statement_identifier "LAB_00062d40") (; ";"))) (expression_statement "iVar15 = FUN_0005f680();" (assignment_expression "iVar15 = FUN_0005f680()" (identifier "iVar15") (= "=") (call_expression "FUN_0005f680()" (identifier "FUN_0005f680") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) goto LAB_00062c00;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062c00;" (goto "goto") (statement_identifier "LAB_00062c00") (; ";"))) (expression_statement "uVar7 = piVar3[0xc];" (assignment_expression "uVar7 = piVar3[0xc]" (identifier "uVar7") (= "=") (subscript_expression "piVar3[0xc]" (identifier "piVar3") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =\n         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" (* "*") (cast_expression "(uint *)(*(int *)(iVar11 + 0x38) + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x38) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar11 + 0x38) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x38)" (* "*") (cast_expression "(int *)(iVar11 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x38)" (( "(") (binary_expression "iVar11 + 0x38" (identifier "iVar11") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" (identifier "uVar7") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" (( "(") (binary_expression "uVar7 & 0xff0000" (identifier "uVar7") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" (( "(") (binary_expression "uVar7 & 0xff00" (identifier "uVar7") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar7 << 0x18" (identifier "uVar7") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;" (if "if") (parenthesized_expression "(extraout_ECX != (uint *)0x0)" (( "(") (binary_expression "extraout_ECX != (uint *)0x0" (identifier "extraout_ECX") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00062d48;" (goto "goto") (statement_identifier "LAB_00062d48") (; ";"))) (labeled_statement "LAB_00062d5d:\n    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }" (statement_identifier "LAB_00062d5d") (: ":") (if_statement "if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0'))" (( "(") (binary_expression "(*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')" (parenthesized_expression "(*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4))" (( "(") (binary_expression "*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)" (pointer_expression "*(int *)(iVar4 + 0x60)" (* "*") (cast_expression "(int *)(iVar4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x60)" (( "(") (binary_expression "iVar4 + 0x60" (identifier "iVar4") (+ "+") (number_literal "0x60")) () ")")))) (< "<") (pointer_expression "*(int *)(*param_1 + 0x1d4)" (* "*") (cast_expression "(int *)(*param_1 + 0x1d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x1d4)" (( "(") (binary_expression "*param_1 + 0x1d4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x1d4")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar4 + 6) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 6) != '\0'" (pointer_expression "*(char *)(iVar4 + 6)" (* "*") (cast_expression "(char *)(iVar4 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 6)" (( "(") (binary_expression "iVar4 + 6" (identifier "iVar4") (+ "+") (number_literal "6")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      iVar15 = FUN_0002d050();\n      goto LAB_00062c00;\n    }" ({ "{") (expression_statement "iVar15 = FUN_0002d050();" (assignment_expression "iVar15 = FUN_0002d050()" (identifier "iVar15") (= "=") (call_expression "FUN_0002d050()" (identifier "FUN_0002d050") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_00062c00;" (goto "goto") (statement_identifier "LAB_00062c00") (; ";")) (} "}")))) (} "}")))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00062c00:\n  if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }" (statement_identifier "LAB_00062c00") (: ":") (if_statement "if (*(char *)((int)param_1 + 9) != '\0') {\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 9) != '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 9) != '\0'" (pointer_expression "*(char *)((int)param_1 + 9)" (* "*") (cast_expression "(char *)((int)param_1 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 9)" (( "(") (binary_expression "(int)param_1 + 9" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    param_1 = param_1 + 3;\n    *param_1 = *param_1 + -1;\n    if (*param_1 == 0) {\n      FUN_000278b0();\n    }\n  }" ({ "{") (expression_statement "param_1 = param_1 + 3;" (assignment_expression "param_1 = param_1 + 3" (identifier "param_1") (= "=") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*param_1 = *param_1 + -1;" (assignment_expression "*param_1 = *param_1 + -1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "*param_1 + -1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*param_1 == 0) {\n      FUN_000278b0();\n    }" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000278b0();\n    }" ({ "{") (expression_statement "FUN_000278b0();" (call_expression "FUN_000278b0()" (identifier "FUN_000278b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }" (if "if") (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (!= "!=") (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                    \n    FUN_000a9ea0();\n  }" ({ "{") (expression_statement "FUN_000a9ea0();" (call_expression "FUN_000a9ea0()" (identifier "FUN_000a9ea0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return iVar15;" (return "return") (identifier "iVar15") (; ";")) (} "}")))

int __regparm3 function_1(type_1 *var_9,int wrflag,int *pSchemaVersion)

{
  type_2 var_28;
  type_3 *pBt;
  type_4 *pPager;
  type_5 *var_8;
  type_1 *var_10;
  int *var_27;
  type_6 var_5;
  type_7 PVar6;
  type_8 uVar7;
  type_9 uVar8;
  type_10 *var_11;
  int var_19;
  type_6 var_32;
  type_8 *p_00;
  type_11 *var_14;
  type_6 *var_4;
  type_12 *var_15;
  type_13 *var_33;
  type_14 var_7;
  int var_6;
  type_11 *extraout_EDX_00;
  type_15 extraout_EDX_01;
  type_11 *extraout_EDX_02;
  type_15 extraout_EDX_03;
  type_15 extraout_EDX_04;
  type_6 var_23;
  type_11 *extraout_EDX_05;
  type_11 *extraout_EDX_06;
  type_15 extraout_EDX_07;
  type_15 extraout_EDX_08;
  type_15 extraout_EDX_09;
  type_11 *extraout_EDX_10;
  type_15 extraout_EDX_11;
  type_15 uVar17;
  type_11 *extraout_EDX_12;
  type_11 *extraout_EDX_13;
  type_11 *var_13;
  int var_2;
  type_16 var_22;
  type_12 *pPage1;
  int var_25;
  int var_41;
  type_15 uStack_14;
  
  uStack_14 = 0x62b7b;
  var_1();
  pBt = var_9->pBt;
  var_41 = *(int *)(var_2 + 0x14);
  pPager = pBt->pPager;
  if (var_9->sharable != '\0') {
    var_3(var_9);
  }
  if (var_9->inTrans == '\x02') {
LAB_00062d40:
    if (var_4 != (type_6 *)0x0) {
LAB_00062d48:
      var_5 = *(type_6 *)(pBt->pPage1->aData + 0x28);
      *var_4 =
           var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18;
    }
    if (var_6 != 0) goto LAB_00062d5d;
  }
  else {
    if ((var_9->inTrans == '\x01') && (var_6 == 0)) {
LAB_00062e08:
      if (var_4 == (type_6 *)0x0) {
        var_13 = (type_11 *)0x0;
        goto LAB_00062c00;
      }
      goto LAB_00062d48;
    }
    var_7 = pBt->btsFlags;
    if (((var_9->db->flags & 0x2000000) == 0) || (pPager->readOnly != '\0')) {
      if ((var_7 & 1) == 0) goto LAB_00062c49;
      var_13 = (type_11 *)&DAT_00000008;
      if (var_6 != 0) goto LAB_00062c00;
LAB_00062be5:
      if ((var_7 & 0x80) != 0) {
LAB_00062bed:
        var_11 = pBt->pWriter->db;
        goto LAB_00062bf2;
      }
    }
    else {
      var_7 = var_7 & 0xfffe;
      pBt->btsFlags = var_7;
LAB_00062c49:
      if (var_6 == 0) goto LAB_00062be5;
      if ((pBt->inTransaction == '\x02') || ((var_7 & 0x80) != 0)) goto LAB_00062bed;
      if ((var_6 < 2) || (var_8 = pBt->pLock, var_8 == (type_5 *)0x0)) goto LAB_00062c81;
      var_10 = var_8->pBtree;
      while (var_9 == var_10) {
        var_8 = var_8->pNext;
        if (var_8 == (type_5 *)0x0) goto LAB_00062c81;
        var_10 = var_8->pBtree;
      }
      var_11 = var_10->db;
LAB_00062bf2:
      var_13 = (type_11 *)0x106;
      if (var_11 != (type_10 *)0x0) goto LAB_00062c00;
    }
LAB_00062c81:
    var_13 = (type_11 *)var_12(var_9,1,'\x01');
    if (var_13 != (type_11 *)0x0) goto LAB_00062c00;
    var_14 = (type_11 *)pBt->nPage;
    var_7 = pBt->btsFlags & 0xffef;
    pBt->btsFlags = var_7;
    if (var_14 == (type_11 *)0x0) {
      pBt->btsFlags = var_7 | 0x10;
    }
    var_15 = pBt->pPage1;
LAB_00062cbf:
    var_13 = (type_11 *)0x0;
    if (var_15 == (type_12 *)0x0) goto LAB_00062d23;
LAB_00062cc3:
    if ((var_13 != (type_11 *)0x0) || (var_6 == 0)) {
LAB_00062dc8:
      var_19 = var_16(var_14,var_13);
      if (var_13 == (type_11 *)0x0) goto LAB_00062dd0;
LAB_00062d35:
      var_13 = (type_11 *)var_19;
      if (pBt->inTransaction != '\0') goto LAB_00062cf5;
LAB_00062cec:
      do {
        var_13 = (type_11 *)var_19;
        var_17((type_3 *)&pBt->pPage1,(type_3 *)((type_17)var_19 >> 0x20));
LAB_00062cf5:
        if ((((char)var_13 != '\x05') || (pBt->inTransaction != '\0')) ||
           (var_19 = var_18(pBt), var_14 = extraout_EDX_00, var_19 == 0)) break;
LAB_00062d1c:
        if (pBt->pPage1 != (type_12 *)0x0) goto LAB_00062cc3;
LAB_00062d23:
        var_19 = var_20(pBt->pPager);
        var_19 = var_16(extraout_EDX_01,var_19);
        if (var_19 != 0) goto LAB_00062d35;
        var_19 = var_21(pBt,1,&pPage1,0);
        var_19 = var_16(extraout_EDX_04,var_19);
        if (var_19 != 0) goto LAB_00062d35;
        var_27 = (int *)pPage1->aData;
        var_5 = var_27[7];
        var_22 = var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18;
        var_5 = pBt->pPager->dbSize;
        var_23 = (type_6)pBt->db->flags & 0x2000000;
        if ((var_22 == 0) || (var_27[6] != var_27[0x17])) {
          if ((var_23 != 0) || (var_22 = var_5, var_5 == 0)) goto LAB_000630a0;
        }
        else if (var_23 != 0) {
LAB_000630a0:
          var_22 = 0;
          goto LAB_000630a8;
        }
        if (((*var_27 != 0x694c5153) || (var_27[1] != 0x66206574)) ||
           ((var_27[2] != 0x616d726f || (var_27[3] != 0x332074)))) goto LAB_00062f1c;
        if (2 < *(type_2 *)((int)var_27 + 0x12)) {
          pBt->btsFlags = pBt->btsFlags | 1;
        }
        if (2 < *(type_2 *)((int)var_27 + 0x13)) goto LAB_00062f1c;
        if ((*(type_2 *)((int)var_27 + 0x13) == 2) && ((pBt->btsFlags & 0x20) == 0)) {
          var_25 = 0;
          var_14 = (type_11 *)var_24(pBt->pPager,&var_25);
          if (var_14 == (type_11 *)0x0) {
            if (var_25 != 0) goto LAB_000631e1;
            var_26(pPage1->pDbPage);
            var_15 = pBt->pPage1;
            var_14 = extraout_EDX_13;
            goto LAB_00062cbf;
          }
LAB_0006325c:
          var_26(pPage1->pDbPage);
          pBt->pPage1 = (type_12 *)0x0;
          var_13 = var_14;
LAB_00063279:
          var_19 = var_16(var_14,var_13);
          if (var_13 != (type_11 *)0x0) goto LAB_00062d35;
          goto LAB_00062d1c;
        }
LAB_000631e1:
        if ((((*(short *)((int)var_27 + 0x15) != 0x2040) || (*(char *)((int)var_27 + 0x17) != ' '))
            || (var_23 = (type_6)*(type_2 *)(var_27 + 4) << 8 |
                         (type_6)*(type_2 *)((int)var_27 + 0x11) << 0x10, (var_23 - 1 & var_23) != 0))
           || (0xfeff < var_23 - 0x101)) {
          var_13 = (type_11 *)0x1a;
          var_26(pPage1->pDbPage);
          pBt->pPage1 = (type_12 *)0x0;
          var_14 = extraout_EDX_10;
          goto LAB_00062ce2;
        }
        pBt->btsFlags = pBt->btsFlags | 2;
        var_28 = *(type_2 *)(var_27 + 5);
        var_32 = var_23 - var_28;
        if (var_23 != pBt->pageSize) {
          var_26(pPage1->pDbPage);
          pBt->usableSize = var_32;
          pBt->pageSize = var_23;
          if (pBt->pTmpSpace != (type_8 *)0x0) {
            p_00 = pBt->pTmpSpace + -4;
            pBt->pTmpSpace = p_00;
            var_29(p_00);
            pBt->pTmpSpace = (type_8 *)0x0;
          }
          var_13 = (type_11 *)var_30(pBt->pPager,&pBt->pageSize,(type_6)var_28);
          var_14 = extraout_EDX_12;
          goto LAB_00063279;
        }
        if (((pBt->db->flags & 0x10000001) != 1) && (var_5 < var_22)) {
          var_14 = (type_11 *)var_31(0x10855);
          goto LAB_0006325c;
        }
        if (0x1df < var_32) {
          pBt->usableSize = var_32;
          pBt->autoVacuum = var_27[0xd] != 0;
          pBt->incrVacuum = var_27[0x10] != 0;
LAB_000630a8:
          pBt->pPage1 = pPage1;
          var_7 = (short)(((pBt->usableSize + 0x3fffff4) * 0x40) / 0xff) - 0x17;
          pBt->maxLocal = var_7;
          uVar8 = (short)(((pBt->usableSize + 0x7fffff4) * 0x20) / 0xff) - 0x17;
          pBt->minLocal = uVar8;
          pBt->minLeaf = uVar8;
          uVar7 = '\x7f';
          pBt->maxLeaf = (short)pBt->usableSize - 0x23;
          var_14 = (type_11 *)(type_6)var_7;
          if (var_7 < 0x80) {
            uVar7 = (type_8)var_7;
          }
          pBt->max1bytePayload = uVar7;
          pBt->nPage = var_22;
          var_15 = pPage1;
          goto LAB_00062cbf;
        }
LAB_00062f1c:
        var_13 = (type_11 *)0x1a;
        var_26(pPage1->pDbPage);
        pBt->pPage1 = (type_12 *)0x0;
        var_14 = extraout_EDX_05;
LAB_00062ce2:
        var_19 = var_16(var_14,var_13);
      } while (pBt->inTransaction == '\0');
      goto LAB_00062c00;
    }
    if ((pBt->btsFlags & 1) != 0) goto LAB_00062cdd;
    var_19 = var_16(var_14,pPager->errCode);
    if (pPager->errCode != 0) {
LAB_00062e70:
      uVar17 = (type_15)((type_17)var_19 >> 0x20);
      if ((int)var_19 != 0x205) goto LAB_00062d35;
LAB_00062e7c:
      if (pBt->inTransaction == '\0') {
        var_19 = var_16(uVar17,5);
        goto LAB_00062cec;
      }
      var_13 = (type_11 *)0x205;
      goto LAB_00062c00;
    }
    pPager->subjInMemory = var_9->db->temp_store == '\x02';
    if (pPager->eState == '\x01') {
      var_33 = pPager->pWal;
      if (var_33 != (type_13 *)0x0) {
        if ((pPager->exclusiveMode != '\0') && (var_33->exclusiveMode == '\0')) {
          if ((pPager->eLock == 5) || (pPager->eLock < 4)) {
            var_19 = var_34(pPager,4);
            var_19 = var_16(extraout_EDX_09,var_19);
            if (var_19 != 0) goto LAB_00062e70;
            var_33 = pPager->pWal;
          }
          var_14 = var_33->pDbFd;
          if (var_33->exclusiveMode == '\0') {
            (*var_14->pMethods->xShmLock)(var_14,var_33->readLock + 3,1,5);
            var_14 = extraout_EDX_06;
          }
          var_33->exclusiveMode = '\x01';
          var_33 = pPager->pWal;
        }
        if (var_33->readOnly != '\0') {
LAB_00062cdd:
          var_13 = (type_11 *)&DAT_00000008;
          goto LAB_00062ce2;
        }
        if ((var_33->exclusiveMode == '\0') &&
           (var_19 = (*var_33->pDbFd->pMethods->xShmLock)(var_33->pDbFd,0,1,10), (int)var_19 != 0)
           ) goto LAB_00062e70;
        var_33->writeLock = '\x01';
        var_19 = var_35(&var_33->hdr,*var_33->apWiData,0x30);
        if (var_19 == 0) goto LAB_00063076;
        uVar17 = extraout_EDX_07;
        if (var_33->exclusiveMode == '\0') {
          (*var_33->pDbFd->pMethods->xShmLock)(var_33->pDbFd,0,1,9);
          uVar17 = extraout_EDX_11;
        }
        var_33->writeLock = '\0';
        goto LAB_00062e7c;
      }
      if ((pPager->eLock < 2) || (pPager->eLock == 5)) {
        var_19 = var_34(pPager,2);
        uVar17 = extraout_EDX_08;
        if ((1 < var_6) && (var_19 == 0)) goto LAB_00062e57;
LAB_00062e67:
        var_19 = var_16(uVar17,var_19);
        if (var_19 != 0) goto LAB_00062e70;
      }
      else if (1 < var_6) {
LAB_00062e57:
        var_19 = var_36(pPager,4);
        uVar17 = extraout_EDX_03;
        goto LAB_00062e67;
      }
LAB_00063076:
      PVar6 = pPager->dbSize;
      pPager->eState = '\x02';
      *(type_15 *)&pPager->journalOff = 0;
      *(type_15 *)((int)&pPager->journalOff + 4) = 0;
      pPager->dbHintSize = PVar6;
      pPager->dbFileSize = PVar6;
      pPager->dbOrigSize = PVar6;
    }
    if (pBt->nPage == 0) {
      var_13 = (type_11 *)var_37(pBt);
      var_14 = extraout_EDX_02;
      goto LAB_00062dc8;
    }
LAB_00062dd0:
    if ((var_9->inTrans == '\0') && (pBt->nTransaction = pBt->nTransaction + 1, var_9->sharable != '\0')) {
      (var_9->lock).eLock = '\x01';
      (var_9->lock).pNext = pBt->pLock;
      pBt->pLock = &var_9->lock;
    }
    var_28 = pBt->inTransaction;
    if (var_6 == 0) {
      var_9->inTrans = '\x01';
      if (var_28 == 0) {
        pBt->inTransaction = '\x01';
      }
      goto LAB_00062e08;
    }
    var_9->inTrans = '\x02';
    if (var_28 < 2) {
      pBt->inTransaction = '\x02';
    }
    var_15 = pBt->pPage1;
    pBt->pWriter = var_9;
    var_7 = pBt->btsFlags & 0xffbf;
    if (1 < var_6) {
      var_7 = var_7 | 0x40;
    }
    pBt->btsFlags = var_7;
    var_5 = *(type_6 *)(var_15->aData + 0x1c);
    if (pBt->nPage ==
        (var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18))
    goto LAB_00062d40;
    var_13 = (type_11 *)var_38(var_15->pDbPage);
    if (var_13 != (type_11 *)0x0) goto LAB_00062c00;
    var_5 = pBt->nPage;
    *(type_6 *)(var_15->aData + 0x1c) =
         var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18;
    if (var_4 != (type_6 *)0x0) goto LAB_00062d48;
LAB_00062d5d:
    var_19 = var_9->db->nSavepoint;
    if ((pPager->nSavepoint < var_19) && (pPager->useJournal != '\0')) {
      var_13 = (type_11 *)var_39(pPager,var_19);
      goto LAB_00062c00;
    }
  }
  var_13 = (type_11 *)0x0;
LAB_00062c00:
  if (var_9->sharable != '\0') {
    var_27 = &var_9->wantToLock;
    *var_27 = *var_27 + -1;
    if (*var_27 == 0) {
      var_40(var_9);
    }
  }
  if (var_41 == *(int *)(var_2 + 0x14)) {
    return (int)var_13;
  }
                    /* WARNING: Subroutine does not return */
  var_42();
}


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

int __regparm3 MASKED(int *param_1)

{
  int iVar1;
  byte bVar2;
  int *piVar3;
  int iVar4;
  undefined4 *puVar5;
  int *piVar6;
  uint uVar7;
  undefined4 uVar8;
  ushort uVar9;
  short sVar10;
  int iVar11;
  uint uVar12;
  uint *extraout_ECX;
  ushort uVar13;
  int extraout_EDX;
  uint uVar14;
  int iVar15;
  int in_GS_OFFSET;
  uint local_44;
  int local_28;
  
  FUN_000a94ff();
  piVar3 = (int *)param_1[1];
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  iVar4 = *piVar3;
  if (*(char *)((int)param_1 + 9) != '\0') {
    FUN_00027820();
  }
  if ((char)param_1[2] == '\x02') {
LAB_00062d40:
    if (extraout_ECX != (uint *)0x0) {
LAB_00062d48:
      uVar7 = *(uint *)(*(int *)(piVar3[3] + 0x38) + 0x28);
      *extraout_ECX =
           uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
    }
    if (extraout_EDX != 0) goto LAB_00062d5d;
  }
  else {
    if (((char)param_1[2] == '\x01') && (extraout_EDX == 0)) {
LAB_00062e08:
      if (extraout_ECX == (uint *)0x0) {
        iVar15 = 0;
        goto LAB_00062c00;
      }
      goto LAB_00062d48;
    }
    uVar9 = *(ushort *)(piVar3 + 6);
    if (((*(byte *)(*param_1 + 0x1f) & 2) == 0) || (*(char *)(iVar4 + 0xe) != '\0')) {
      if ((uVar9 & 1) == 0) goto LAB_00062c49;
      iVar15 = 8;
      if (extraout_EDX != 0) goto LAB_00062c00;
LAB_00062be5:
      if ((uVar9 & 0x80) != 0) {
LAB_00062bed:
        iVar11 = *(int *)piVar3[0x14];
        goto LAB_00062bf2;
      }
    }
    else {
      uVar9 = uVar9 & 0xfffe;
      *(ushort *)(piVar3 + 6) = uVar9;
LAB_00062c49:
      if (extraout_EDX == 0) goto LAB_00062be5;
      if (((char)piVar3[5] == '\x02') || ((uVar9 & 0x80) != 0)) goto LAB_00062bed;
      if ((extraout_EDX < 2) || (puVar5 = (undefined4 *)piVar3[0x13], puVar5 == (undefined4 *)0x0))
      goto LAB_00062c81;
      piVar6 = (int *)*puVar5;
      while (param_1 == piVar6) {
        puVar5 = (undefined4 *)puVar5[3];
        if (puVar5 == (undefined4 *)0x0) goto LAB_00062c81;
        piVar6 = (int *)*puVar5;
      }
      iVar11 = *piVar6;
LAB_00062bf2:
      iVar15 = 0x106;
      if (iVar11 != 0) goto LAB_00062c00;
    }
LAB_00062c81:
    iVar15 = FUN_0001f420();
    if (iVar15 != 0) goto LAB_00062c00;
    uVar9 = *(ushort *)(piVar3 + 6);
    *(ushort *)(piVar3 + 6) = uVar9 & 0xffef;
    if (piVar3[0xc] == 0) {
      *(ushort *)(piVar3 + 6) = uVar9 & 0xffef | 0x10;
    }
    iVar11 = piVar3[3];
LAB_00062cbf:
    if (iVar11 == 0) goto LAB_00062d23;
LAB_00062cc3:
    if ((iVar15 != 0) || (extraout_EDX == 0)) {
LAB_00062dc8:
      if (iVar15 == 0) goto LAB_00062dd0;
LAB_00062d35:
      if ((char)piVar3[5] != '\0') goto LAB_00062cf5;
LAB_00062cec:
      do {
        FUN_00061fb0();
LAB_00062cf5:
        if ((((char)iVar15 != '\x05') || ((char)piVar3[5] != '\0')) ||
           (iVar11 = FUN_0001f620(piVar3), iVar11 == 0)) break;
LAB_00062d1c:
        if (piVar3[3] != 0) goto LAB_00062cc3;
LAB_00062d23:
        iVar15 = FUN_000622f0();
        if ((iVar15 != 0) || (iVar15 = FUN_0001f5a0(0), iVar15 != 0)) goto LAB_00062d35;
        piVar6 = *(int **)(local_28 + 0x38);
        uVar7 = piVar6[7];
        local_44 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
        uVar7 = *(uint *)(*piVar3 + 0x18);
        uVar14 = *(uint *)(piVar3[1] + 0x1c) & 0x2000000;
        if ((local_44 == 0) || (piVar6[6] != piVar6[0x17])) {
          if ((uVar14 != 0) || (local_44 = uVar7, uVar7 == 0)) goto LAB_000630a0;
        }
        else if (uVar14 != 0) {
LAB_000630a0:
          local_44 = 0;
          goto LAB_000630a8;
        }
        if ((((*piVar6 != 0x694c5153) || (piVar6[1] != 0x66206574)) || (piVar6[2] != 0x616d726f)) ||
           (piVar6[3] != 0x332074)) goto LAB_00062f1c;
        if (2 < *(byte *)((int)piVar6 + 0x12)) {
          *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 1;
        }
        if (2 < *(byte *)((int)piVar6 + 0x13)) goto LAB_00062f1c;
        if ((*(byte *)((int)piVar6 + 0x13) == 2) && ((*(byte *)(piVar3 + 6) & 0x20) == 0)) {
          iVar15 = FUN_0001799c();
          if (iVar15 == 0) {
            iVar15 = 0;
            FUN_00061f80();
            iVar11 = piVar3[3];
            goto LAB_00062cbf;
          }
LAB_0006325c:
          FUN_00061f80();
          piVar3[3] = 0;
LAB_00063279:
          if (iVar15 != 0) goto LAB_00062d35;
          goto LAB_00062d1c;
        }
        if (((*(short *)((int)piVar6 + 0x15) != 0x2040) || (*(char *)((int)piVar6 + 0x17) != ' '))
           || ((uVar14 = (uint)*(byte *)(piVar6 + 4) << 8 |
                         (uint)*(byte *)((int)piVar6 + 0x11) << 0x10, (uVar14 - 1 & uVar14) != 0 ||
               (0xfeff < uVar14 - 0x101)))) {
          iVar15 = 0x1a;
          FUN_00061f80();
          piVar3[3] = 0;
          goto LAB_00062ce2;
        }
        *(ushort *)(piVar3 + 6) = *(ushort *)(piVar3 + 6) | 2;
        uVar12 = uVar14 - *(byte *)(piVar6 + 5);
        if (uVar14 != piVar3[9]) {
          FUN_00061f80();
          piVar3[10] = uVar12;
          piVar3[9] = uVar14;
          if (piVar3[0x15] != 0) {
            piVar3[0x15] = piVar3[0x15] + -4;
            FUN_00026f80();
            piVar3[0x15] = 0;
          }
          iVar15 = FUN_00041550();
          goto LAB_00063279;
        }
        if (((*(uint *)(piVar3[1] + 0x1c) & 0x10000001) != 1) && (uVar7 < local_44)) {
          iVar15 = FUN_000383f0();
          goto LAB_0006325c;
        }
        if (0x1df < uVar12) {
          piVar3[10] = uVar12;
          *(bool *)((int)piVar3 + 0x11) = piVar6[0xd] != 0;
          *(bool *)((int)piVar3 + 0x12) = piVar6[0x10] != 0;
LAB_000630a8:
          piVar3[3] = local_28;
          uVar13 = (short)((uint)((piVar3[10] + 0x3fffff4) * 0x40) / 0xff) - 0x17;
          *(ushort *)((int)piVar3 + 0x1a) = uVar13;
          sVar10 = (short)((uint)((piVar3[10] + 0x7fffff4) * 0x20) / 0xff) + -0x17;
          *(short *)(piVar3 + 7) = sVar10;
          *(short *)(piVar3 + 8) = sVar10;
          *(short *)((int)piVar3 + 0x1e) = (short)piVar3[10] + -0x23;
          uVar9 = 0x7f;
          if (uVar13 < 0x80) {
            uVar9 = uVar13;
          }
          *(char *)((int)piVar3 + 0x15) = (char)uVar9;
          piVar3[0xc] = local_44;
          iVar11 = local_28;
          goto LAB_00062cbf;
        }
LAB_00062f1c:
        iVar15 = 0x1a;
        FUN_00061f80();
        piVar3[3] = 0;
LAB_00062ce2:
      } while ((char)piVar3[5] == '\0');
      goto LAB_00062c00;
    }
    if ((*(byte *)(piVar3 + 6) & 1) != 0) goto LAB_00062cdd;
    iVar15 = *(int *)(iVar4 + 0x28);
    if (iVar15 != 0) {
LAB_00062e70:
      if (iVar15 != 0x205) goto LAB_00062d35;
LAB_00062e7c:
      if ((char)piVar3[5] == '\0') {
        iVar15 = 5;
        goto LAB_00062cec;
      }
      iVar15 = 0x205;
      goto LAB_00062c00;
    }
    *(bool *)(iVar4 + 0x15) = *(char *)(*param_1 + 0x4c) == '\x02';
    if (*(char *)(iVar4 + 0x10) == '\x01') {
      iVar11 = *(int *)(iVar4 + 0xd4);
      if (iVar11 != 0) {
        if ((*(char *)(iVar4 + 4) != '\0') && (*(char *)(iVar11 + 0x2b) == '\0')) {
          if ((*(byte *)(iVar4 + 0x11) == 5) || (*(byte *)(iVar4 + 0x11) < 4)) {
            iVar15 = FUN_00027390();
            if (iVar15 != 0) goto LAB_00062e70;
            iVar11 = *(int *)(iVar4 + 0xd4);
          }
          if (*(char *)(iVar11 + 0x2b) == '\0') {
            (**(code **)(**(int **)(iVar11 + 4) + 0x38))
                      (*(int **)(iVar11 + 4),*(short *)(iVar11 + 0x28) + 3,1,5);
          }
          *(undefined1 *)(iVar11 + 0x2b) = 1;
          iVar11 = *(int *)(iVar4 + 0xd4);
        }
        if (*(char *)(iVar11 + 0x2e) != '\0') {
LAB_00062cdd:
          iVar15 = 8;
          goto LAB_00062ce2;
        }
        if ((*(char *)(iVar11 + 0x2b) == '\0') &&
           (iVar15 = (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,10),
           iVar15 != 0)) goto LAB_00062e70;
        *(undefined1 *)(iVar11 + 0x2c) = 1;
        iVar15 = memcmp((void *)(iVar11 + 0x34),(void *)**(undefined4 **)(iVar11 + 0x20),0x30);
        if (iVar15 == 0) goto LAB_00063076;
        if (*(char *)(iVar11 + 0x2b) == '\0') {
          (**(code **)(**(int **)(iVar11 + 4) + 0x38))(*(int **)(iVar11 + 4),0,1,9);
        }
        *(undefined1 *)(iVar11 + 0x2c) = 0;
        goto LAB_00062e7c;
      }
      if ((*(byte *)(iVar4 + 0x11) < 2) || (*(byte *)(iVar4 + 0x11) == 5)) {
        iVar15 = FUN_00027390();
        if ((1 < extraout_EDX) && (iVar15 == 0)) goto LAB_00062e57;
LAB_00062e67:
        if (iVar15 != 0) goto LAB_00062e70;
      }
      else if (1 < extraout_EDX) {
LAB_00062e57:
        iVar15 = FUN_000273d0();
        goto LAB_00062e67;
      }
LAB_00063076:
      uVar8 = *(undefined4 *)(iVar4 + 0x18);
      *(undefined1 *)(iVar4 + 0x10) = 2;
      *(undefined4 *)(iVar4 + 0x48) = 0;
      *(undefined4 *)(iVar4 + 0x4c) = 0;
      *(undefined4 *)(iVar4 + 0x24) = uVar8;
      *(undefined4 *)(iVar4 + 0x20) = uVar8;
      *(undefined4 *)(iVar4 + 0x1c) = uVar8;
    }
    if (piVar3[0xc] == 0) {
      iVar15 = FUN_00062aa0();
      goto LAB_00062dc8;
    }
LAB_00062dd0:
    if (((char)param_1[2] == '\0') &&
       (piVar3[0xb] = piVar3[0xb] + 1, *(char *)((int)param_1 + 9) != '\0')) {
      *(undefined1 *)(param_1 + 10) = 1;
      param_1[0xb] = piVar3[0x13];
      piVar3[0x13] = (int)(param_1 + 8);
    }
    bVar2 = *(byte *)(piVar3 + 5);
    if (extraout_EDX == 0) {
      *(undefined1 *)(param_1 + 2) = 1;
      if (bVar2 == 0) {
        *(undefined1 *)(piVar3 + 5) = 1;
      }
      goto LAB_00062e08;
    }
    *(undefined1 *)(param_1 + 2) = 2;
    if (bVar2 < 2) {
      *(undefined1 *)(piVar3 + 5) = 2;
    }
    iVar11 = piVar3[3];
    piVar3[0x14] = (int)param_1;
    uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf;
    if (1 < extraout_EDX) {
      uVar9 = *(ushort *)(piVar3 + 6) & 0xffbf | 0x40;
    }
    *(ushort *)(piVar3 + 6) = uVar9;
    uVar7 = *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c);
    if (piVar3[0xc] ==
        (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18))
    goto LAB_00062d40;
    iVar15 = FUN_0005f680();
    if (iVar15 != 0) goto LAB_00062c00;
    uVar7 = piVar3[0xc];
    *(uint *)(*(int *)(iVar11 + 0x38) + 0x1c) =
         uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
    if (extraout_ECX != (uint *)0x0) goto LAB_00062d48;
LAB_00062d5d:
    if ((*(int *)(iVar4 + 0x60) < *(int *)(*param_1 + 0x1d4)) && (*(char *)(iVar4 + 6) != '\0')) {
      iVar15 = FUN_0002d050();
      goto LAB_00062c00;
    }
  }
  iVar15 = 0;
LAB_00062c00:
  if (*(char *)((int)param_1 + 9) != '\0') {
    param_1 = param_1 + 3;
    *param_1 = *param_1 + -1;
    if (*param_1 == 0) {
      FUN_000278b0();
    }
  }
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000a9ea0();
  }
  return iVar15;
}

